본문 바로가기

In 삽질ing/JSP

Unable to read TLD /META-INF/c.tld 에러


오늘 간만에 스프링을 세팅해 보려고 lucy 1.7을 적용해 보았다.

하지만 자꾸 에러가 나서 몇시간을 삽질 했는지 모른다. 에러 로그는

/WEB-INF/jsp/board/list.jsp(2,0) Unable to read TLD "META-INF/c.tld" from JAR file "file:/D:/workspace/lucyex/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/lucy-example/WEB-INF/lib/jstl-1.2.jar":
org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV

at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)


처음엔 이 문제가 jsp에서 커스텀 태그때문에 나는줄  알고 커스텀 태그를 모두 삭제 하고 hello만 남겨놨다
그랬더니 다른 문제의 에러가 발생했다.

심각: Servlet.service() for servlet jsp threw exception

java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.jsp.board.list_jsp


 요딴 에러가 또 발생 하였다. 
재 빌드도 해보고 클린 컴파일도 다시 해보고 해도 전혀 안되었다. 검색을 해본 결과 

pom.xml 에 정의된 dependency 들 중 <scope>provided</scope>이라고 된 것을은 원래 \WEB-INF\lib 에 있으면 안된단다. 배포할 땐 웹컨테이너가 해주는 일이기 때문에 필요가 없기 때문이다. 
그래서  pom.xml에서 jsp-api-2.1jar 파일과 servlet-api-2.4 .jar 를 주석 처리 해주었더니 정상적으로 깔끔하게 잘돌아갔다.