我無法啓動的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