[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 メーリングリストの案内