티스토리 뷰

문제점:

**프로젝트를 tomcat 7 에 배포를 해보면 태그라이브러리 tld파일을 찾지 못하는 에러가 남

현재 태그라이브러리는 /WEB-INF/classes/taglibs.tld 에 존재


원인:

tomcat7으로 바뀌면서 이전과 달리 /WEB-INF/classes/ 와 /WEB-INF/lib  디렉토리에서 tld 파일을 스캔하지 않음

이렇게 바뀐 이유

a) make TLD scanning consistent between Catalina & Jasper

b) provide the extension points required by the Virgo project for OSGI RFC66

카탈리나 톰켓엔진과 재스퍼 jsp엔진사이에 tld 스캐닝하는 방법을 동일하게 맞추기 위해서라네요.


정리:

tomcat7이 tld를 찾는 곳은 아래와 같습니다. 

1. TLDs declared in web.xml

2. TLDs found in WEB-INF/ and subdirectories (excluding WEB-INF/lib/ and WEB-INF/classes/)

3. TLDs from regular jar files discovered in WEB-INF/lib/

4. ClassLoader scanning


해결책: 쉬운 방법 순으로

1.  tld 파일을 /WEB-INF/ 디렉토리 밑으로 옮긴다 :)

2.  web.xml에 tld 파일의 위치를 기술한다.

<jsp-config>

<taglib>

<taglib-uri>

http://xxxx.xxx.com/taglibs

</taglib-uri>

<taglib-location>

/WEB-INF/classes/taglibs.tld

</taglib-location>

</taglib>

</jsp-config>

3.  jar scanner를 커스텀 구현해서 지정한다.

http://tomcat.apache.org/tomcat-7.0-doc/config/jar-scanner.html


참고 url

https://issues.apache.org/bugzilla/show_bug.cgi?id=50838

https://issues.apache.org/bugzilla/show_bug.cgi?id=47834

http://grokbase.com/t/tomcat/users/112qr2kq35/upgrading-from-tomcat-6-0-29-to-7-0-8-tld-scanned-location-problem


http://wiki.metawerx.net/wiki/Web.xml.TagLib

http://wiki.metawerx.net/wiki/RemovingTaglibFromWeb.xml

http://stackoverflow.com/questions/226514/declare-jsp-taglib-directives-in-web-xml

http://www.coderanch.com/t/58157/Struts/add-taglib-element-web-xml

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함