0
我在我的應用程序中使用了Apache POI
庫並上傳到JBoss AS 7.1
。它成功地部署了jar,並且我能夠運行應用程序而沒有任何錯誤/異常,如果我將其部署到jboss-5.0.1.GA
中,那麼它也是一樣的jar。它拋出以下異常。NoClassDefFoundError在運行時
java.lang.NoClassDefFoundError: org/dom4j/DocumentException
at org.apache.poi.openxml4j.opc.OPCPackage.init(OPCPackage.java:154)
at org.apache.poi.openxml4j.opc.OPCPackage.<init>(OPCPackage.java:141)
at org.apache.poi.openxml4j.opc.Package.<init>(Package.java:54)
at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:82)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:267)
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:39)
at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:120)
...
Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException
at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:738)
at org.apache.felix.framework.ModuleImpl.access$100(ModuleImpl.java:60)
at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1650)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 19 more
如果我添加dom4j
罐子。它會拋出一個新的異常,即
java.lang.ClassCastException: org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory
會是什麼問題? JBoss5
加載類別與JBoss7
不同嗎?我在這裏錯過了什麼?
注:我的應用程序是一個獨立的Java應用程序
顯然荒謬的'ClassCastException'確實表明你有兩個不同的類加載器加載了相同的類。發生這種情況時,這些類具有相同的完全限定名稱,但就JVM而言不兼容。這可能是JBOSS加載一個沒有定義'DocumentException'的舊dom4j。 –
@JimGarrison有什麼可以解決的問題 – MaheshVarma
我已經有一段時間了,因爲我不得不去調試類加載器的問題,而且這也不是一件令人愉快的任務。查看JBOSS是否有辦法將dom4j放入應用程序的類路徑中,而不是全局類路徑。 –