[Seasar-user:17018] 特定環境下でNoClassDefFoundError:AbstractInterceptor発生
T Tsukada
[E-MAIL ADDRESS DELETED]
2009年 3月 3日 (火) 00:30:42 JST
お世話になります。
塚田と申します。
Tomcat起動時に、特定の環境下で、件名のエラーが発生します。
TOMCAT: 6.0.18
OS: Red Hat Enterprise Linux 5
JDK: 1.5.0.16
Seasar ver: 2.4.34 (Doltengより標準的にsastruts+s2jdbc生成)
デプロイタイプ:Cool-Deploy
localhost.xxx.logに
java.lang.NoClassDefFoundError:
org/seasar/framework/aop/interceptors/AbstractInterceptor
同時刻の、catalina.outに
致命的: Webアプリケーションアーカイブ xxx.war を配備中のエラーです
java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
と出力されます。
別のアプリケーションログでは、
[main] DEBUG S2Containerを作成します。path=aop_add.dicon
で止まり、「作成しました。」まで行きません。
aop_add.diconは、aop.diconよりインクルードし、
<component name="appTraceInterceptor"
class="xxx.interceptor.TraceInterceptor" />
を定義し、このTraceInterceptorは、以前メーリングリストにあった内容を参考に
org.seasar.framework.aop.interceptors.TraceInterceptorを継承しただけのクラスで、トレースログのpointcutをカスタマイズするために使用しています。
おそらくこの部分で例外が発生したものと思われます。
ただし常に発生するわけではなく、最初にwarをデプロイして展開し、WEB-INF/classes以下のプロパティファイル等を変更しない場合は、再起動しても発生しませんが、変更すると発生します。また、tomcat/lib以下のあるjarを外に出して再起動し、また再度入れて再起動すると発生しなかったりします。プロパティファイルを変更する必要がある場合は暫定的にこのように対処することにしています。
また、他のWindowsやRHEL4, CentOS5の環境では同じ構成で同様のことを行っても一度も発生したことはありません。
何が原因なのか明確な手がかりがつかめず、クラスローダの仕組みもきちんと理解していないため、かなり困惑しています。対処や調査方法があればご教授願います。
以下、Exceptionの詳細トレースです。
catalina.out
--------------------------------------------------------------------------
致命的: Webアプリケーションアーカイブ xxx.war を配備中のエラーです
java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1302)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1094)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:830)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:719)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
localhost.xxxx.log
----------------------------------------------------------------------------------
org.apache.catalina.core.ApplicationContext log
致命的: StandardWrapper.Throwable
java.lang.NoClassDefFoundError:
org/seasar/framework/aop/interceptors/AbstractInterceptor
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1302)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at org.seasar.framework.util.ClassUtil.forName(ClassUtil.java:98)
at org.seasar.framework.container.factory.ComponentTagHandler.start(ComponentTagHandler.java:43)
at org.seasar.framework.xml.SaxHandler.start(SaxHandler.java:183)
at org.seasar.framework.xml.SaxHandler.start(SaxHandler.java:177)
at org.seasar.framework.xml.SaxHandler.startElement(SaxHandler.java:79)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:533)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:220)
at com.sun.org.apache.xerces.internal.xinclude.XIncludeHandler.emptyElement(XIncludeHandler.java:754)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:819)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:322)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1693)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
at org.seasar.framework.util.SAXParserUtil.parse(SAXParserUtil.java:55)
at org.seasar.framework.xml.SaxHandlerParser.parse(SaxHandlerParser.java:117)
at org.seasar.framework.xml.SaxHandlerParser.parse(SaxHandlerParser.java:107)
at org.seasar.framework.container.factory.XmlS2ContainerBuilder.parse(XmlS2ContainerBuilder.java:170)
at org.seasar.framework.container.factory.XmlS2ContainerBuilder.include(XmlS2ContainerBuilder.java:152)
at org.seasar.framework.container.factory.S2ContainerFactory$DefaultProvider.include(S2ContainerFactory.java:600)
at org.seasar.framework.container.factory.S2ContainerFactory.include(S2ContainerFactory.java:201)
at org.seasar.framework.container.factory.IncludeTagHandler.start(IncludeTagHandler.java:55)
at org.seasar.framework.xml.SaxHandler.start(SaxHandler.java:183)
at org.seasar.framework.xml.SaxHandler.start(SaxHandler.java:175)
at org.seasar.framework.xml.SaxHandler.startElement(SaxHandler.java:79)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:533)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:220)
at com.sun.org.apache.xerces.internal.xinclude.XIncludeHandler.emptyElement(XIncludeHandler.java:754)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:819)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:322)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1693)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
at org.seasar.framework.util.SAXParserUtil.parse(SAXParserUtil.java:55)
at org.seasar.framework.xml.SaxHandlerParser.parse(SaxHandlerParser.java:117)
at org.seasar.framework.xml.SaxHandlerParser.parse(SaxHandlerParser.java:107)
at org.seasar.framework.container.factory.XmlS2ContainerBuilder.parse(XmlS2ContainerBuilder.java:170)
at org.seasar.framework.container.factory.XmlS2ContainerBuilder.build(XmlS2ContainerBuilder.java:148)
at org.seasar.framework.container.factory.AbstractS2ContainerBuilder.build(AbstractS2ContainerBuilder.java:65)
at org.seasar.framework.container.factory.S2ContainerFactory$DefaultProvider.build(S2ContainerFactory.java:634)
at org.seasar.framework.container.factory.S2ContainerFactory$DefaultProvider.create(S2ContainerFactory.java:558)
at org.seasar.framework.container.cooldeploy.S2ContainerFactoryCoolProvider.create(S2ContainerFactoryCoolProvider.java:36)
at org.seasar.framework.container.factory.S2ContainerFactory.create(S2ContainerFactory.java:144)
at org.seasar.framework.container.factory.SingletonS2ContainerFactory.init(SingletonS2ContainerFactory.java:135)
at org.seasar.framework.container.servlet.SingletonS2ContainerInitializer.initialize(SingletonS2ContainerInitializer.java:55)
at org.seasar.framework.container.servlet.S2ContainerServlet.initializeContainer(S2ContainerServlet.java:139)
at org.seasar.framework.container.servlet.S2ContainerServlet.init(S2ContainerServlet.java:127)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:830)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:719)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
------------------------------------------------------------------------------------
長文ですみませんが、何卒よろしくお願いします。
T.Tsukada
Seasar-user メーリングリストの案内