2017-09-13 87 views
0

我當前的項目由一個war和ejb模塊組成,使用一個jar(通過maven合併)。這個jar包含一個CDI組件,當我在war模塊中注入它時,它的工作方式與預期的一樣,但是當我在ejb模塊中注入時,從Eclipse WAS 8.5(完整配置文件)啓動期間,我得到一個NoClassDefFoundError。eclipse:EJB模塊中的外部CDI:NoClassDefFoundError

當我首先啓動服務器時,稍後添加註入並重新發布它似乎工作。另外,當我使用Liberty配置文件時,它可以工作同樣在Z/OS和IPAS上,它按預期工作。

我認爲它可能有類加載的東西,但不知道如何正確解決這個問題。

使用Eclipse霓虹燈,WAS 8.5.5.11完整資料,JEE6 項目,同時該組件是用java 6

這是堆棧跟蹤的第一部分用java 8:

[13-9 -17 14:54:26:589 CEST] 0000003e InjectionProc W CWNEN0047W:BestelFacade類的字段上的資源註釋將被忽略。在java.lang.Class.getDeclaredFieldsImpl(本機方法)記錄儀

感謝

+0

JAR位於您的部署位置(ear/lib或war/lib)在哪裏?它包含哪些bean(純CDI或EJB無狀態/有狀態bean)?在這裏粘貼你的'NoClassDefFoundError'。 – Siliarus

+0

該類的類文件不可用於嘗試執行此操作的類加載器。你很可能需要把它放在別的地方。 –

+0

@Siliarus jar就像其他人一樣只是一個maven依賴項。據我所知,它包含純CDI bean(僅用於@Dependent的註釋)。對於錯誤請參閱編輯的問題 – Bgvv1983

回答

0

我發現完成任務的方式,但我:註釋不能因爲EXC 主器件接收的獲得不知道這是一個合適的解決方案,或者只是一個解決方案,而掩蓋真正的問題。

當我看一看耳模塊組件我在源列c見:/ WS /.../罐和在deploy路徑LIB /罐

當我改變源極到/。 .ear/target /../它的工作原理