TagLibraryValidatorエラー
開発中、突然以下のJSTLエラーが発生。
2008/07/01 22:15:10 org.apache.catalina.core.StandardWrapperValve invoke 致命的: サーブレット default のServlet.service()が例外を投げました org.apache.jasper.JasperException: /WEB-INF/jsp/stockUpdate/list.jsp(1,1) JARファイル "file:/C:/eclipse/3.3.1/workspace/hoge/src/main/webapp/WEB-INF/lib/standard-1.1.2.jar" からTLD "META-INF/c.tld" を読み込めません: org.apache.jasper.JasperException: TagLibraryValidatorクラスのロード又はインスタンス化に失敗しました: org.apache.taglibs.standard.tlv.JstlCoreTLV at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40) ・・・
調べてみると、Sysdeo Tomcatプラグインでのアプリ起動時に以下の警告が。
validateJarFile(C:\\eclipse\\3.3.1\\workspace\\hoge\\WEB-INF\\lib\\servletapi-2.3.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
うーむ、Servlet-Apiのバージョンが競合しているようだ。
指定しているservletは2.5なのに、2.3のライブラリを見に行っている。
調査を進めると、commons-loggingが1.1だとservlet2.3のlibを持ってきてしまうことが判明(えー)
commons-loggingを1.1.1にしたら対応完了。