中にルートpom
は、次の依存関係を持っているEJB ETLのNoClassDefFoundError:org.apache.poi.util.SAXHelper実行
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.16</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.16</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.16</version>
</dependency>
しかし、実行時に、etl
プロセス次のエラー発生時に、
EJB threw an unexpected (non-declared) exception during invocation of method "****" on bean "BeanId(***-ear#***-ejb.jar#***ServiceImpl, null)". Exception data: java.lang.NoClassDefFoundError: org.apache.poi.util.SAXHelper
次のコードスニペットの根本原因はNoClassDefFoundError
です。
XMLReader parser = SAXHelper.newXMLReader();
環境が使用
は、
JDK 1.6.0_35
Websphere Application Server v8.0
Eclipse Juno Service Release 2
完全なスタックトレースが
Caused by: java.lang.ClassNotFoundException: org.apache.poi.util.SAXHelper
at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:230)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:703)
at java.lang.ClassLoader.loadClass(ClassLoader.java:682)
at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:123)
at java.lang.ClassLoader.loadClass(ClassLoader.java:665)
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62)
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58)
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:566)
at java.lang.ClassLoader.loadClass(ClassLoader.java:665)
... 87 more
ノートここで見つけることができます:私はear
アーカイブを開き、それぞれのjars
が利用可能に発見しました。チェックしたEclipse
java build path
もあります。すべてがうまくいくようです。
ありがとうございました。
「耳」が「コンソールだった」を通じて「was」にデプロイされている間、アプリケーションは正常に動作します。 'Eclipse'クラスパスの入力問題のようですが、コミュニティからのコメントは役に立ちます – BalaajiChander