我无法启动的JBoss 4.2.2服务器 - 它是生产以下错误消息(来自org.jboss.kernel.plugins.dependency.AbstractKernelController
):的JBoss 4.2启动抛出的NoClassDefFoundError
Error installing to Described: name=WSDeployerHook_JAXWS_EJB3 state=Not Installed mode=Manual requiredState=Create
java.lang.NoClassDefFoundError: org/jboss/ejb3/interceptors/direct/IndirectContainer
通过在JBoss源代码寻找,我已经接通某些类别跟踪级别日志记录,但所有他所告诉我的是,它无法找到IndirectContainer
(这些线路全部来自org.jboss.mx.loading.LoadMgr3
):
Begin beginLoadTask, [email protected]{classname: org.jboss.ejb3.interceptors.direct.IndirectContainer, requestingThread: Thread[main,5,jboss], requestingClassLoader: [email protected]{ url=null ,addedOrder=2}, loadedClass: nullnull, loadOrder: 2147483647, loadException: null, threadTaskCount: 0, state: 0, #CCE: 0}
End beginLoadTask, ClassNotFoundException
Run failed with exception, [email protected]{classname: org.jboss.ejb3.EJBContainer, requestingThread: Thread[main,5,jboss], requestingClassLoader: [email protected]{ url=null ,addedOrder=2}, loadedClass: nullnull, loadOrder: 2147483647, loadException: java.lang.NoClassDefFoundError: org/jboss/ejb3/interceptors/direct/IndirectContainer, threadTaskCount: 0, state: 1, #CCE: 1}
Notifying task of thread completion, loadTask:[email protected]{classname: org.jboss.ejb3.EJBContainer, requestingThread: Thread[main,5,jboss], requestingClassLoader: [email protected]{ url=null ,addedOrder=2}, loadedClass: nullnull, loadOrder: 2147483647, loadException: java.lang.NoClassDefFoundError: org/jboss/ejb3/interceptors/direct/IndirectContainer, threadTaskCount: 0, state: 1, #CCE: 1}
End nextTask(0), [email protected]{classname: org.jboss.ejb3.EJBContainer, requestingThread: Thread[main,5,jboss], requestingClassLoader: [email protected]{ url=null ,addedOrder=2}, loadedClass: nullnull, loadOrder: 2147483647, loadException: java.lang.NoClassDefFoundError: org/jboss/ejb3/interceptors/direct/IndirectContainer, threadTaskCount: 0, state: 4, #CCE: 1}
Begin endLoadTask, [email protected]{classname: org.jboss.ejb3.EJBContainer, requestingThread: Thread[main,5,jboss], requestingClassLoader: [email protected]{ url=null ,addedOrder=2}, loadedClass: nullnull, loadOrder: 2147483647, loadException: java.lang.NoClassDefFoundError: org/jboss/ejb3/interceptors/direct/IndirectContainer, threadTaskCount: 0, state: 4, #CCE: 1}
registerLoaderThread, [email protected]{ url=file:/var/data/applications/jboss/server/jbossgpa1/deploy/jboss-bean.deployer/ ,addedOrder=5}, t=Thread[main,5,jboss], prevT=null
Begin beginLoadTask, [email protected]{classname: org.jboss.util.JBossStringBuilder, requestingThread: Thread[main,5,jboss], requestingClassLoader: [email protected]{ url=file:/var/data/applications/jboss/server/jbossgpa1/deploy/jboss-bean.deployer/ ,addedOrder=5}, loadedClass: nullnull, loadOrder: 2147483647, loadException: null, threadTaskCount: 0, state: 0, #CCE: 0}
scheduleTask(1), created subtask: {t=Thread[main,5,jboss], [email protected]{ url=file:/var/data/applications/jboss/server/jbossgpa1/deploy/jboss-bean.deployer/ ,addedOrder=5}, name=org.jboss.util.JBossStringBuilder, requestingThread=Thread[main,5,jboss], order=5, releaseInNextTask=false}
我用TextPad搜索包括整个文件夹结构.jars等并且在日志文件之外没有提及IndirectContainer
。
我在猜测图书馆的依赖没有得到满足,但我不确定下一步应该怎样诊断这个问题。任何想法/建议?
(RHEL4上运行)
我跑JBoss (MX MicroKernel) [4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)]
我开始有点绝望,所以我连接调试器,创建了org.jboss的构造条件断点("org.jboss.ejb3.interceptors.direct.IndirectContainer".equals(classname)
)。 mx.loading.ClassLoadingTask。当断点被击中,我就背下来的堆找到IndirectContainer
的最早提及:
在左侧可以看到(我希望 - 这不是找我的小屏幕上非常清晰)在调用UnifiedClassloader3.classLoadInternal()
下面是一个本地电话(这是我看不到任何价值),再有就是UnifiedClassloader3.defineClass()
呼叫:
在这个调用,您可以看到突出(蓝色,右下角)jboss-ejb3-core-client.jar
- 我并没有使用类加载器,但我假设决定实例化ClassLoadingTask IndirectContainer
是因为此.jar文件的内容。
据我所知,在这个.jar中没有提及IndirectContainer
。
希望这是足够的细节让人们认识到这个问题。
哪个版本的JBoss 4,具体是? – skaffman 2011-05-18 10:43:13
@skaffman - 我已经更新了这个问题 – Rich 2011-05-18 10:49:53