読者です 読者をやめる 読者になる 読者になる

Tomcat起動時に発生するエラーのメモ

開発環境をいじったりして定期的にハマるので、、EclipseからTomcat起動したときに発生するエラーについてメモです。どちらも、特にWEB-INF/libフォルダに意図せずに残っている場合が多いです。mavenプラグインで開発用クラスローダーを使った環境なのですが、それがよくないのかなあ。。

〜〜Filter cannot be cast to javax.servlet.Filter

"〜〜Fileter"という部分には、web.xmlで定義しているサーブレットフィルタのクラス名が入ります。geronimo-j2eeservlet-apiのjarファイルが読込まれていることが原因。

java.lang.NoSuchFieldError: fRecognizedFeatures

こんなの。

致命的: 設定記述子 test.xml を配備中のエラーです
java.lang.NoSuchFieldError: fRecognizedFeatures
	at org.apache.xerces.parsers.XML11Configuration.<init>(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.<init>(Unknown Source)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at java.lang.Class.newInstance0(Class.java:355)
	at java.lang.Class.newInstance(Class.java:308)

xercesImplのjarファイルが読込まれていることが原因。

javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext

こんなの

javax.servlet.ServletException: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:274)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.seasar.struts.filter.S2StrutsFilter.doFilter(S2StrutsFilter.java:50)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

JSPのworkフォルダを削除する。