【发布时间】:2017-11-09 18:38:51
【问题描述】:
根pom有以下依赖,
<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
根本原因是下面代码sn-p中的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 可用。也检查了Eclipsejava build path。一切似乎都很好。
谢谢。
【问题讨论】:
-
当
ear被部署到was到was console时,应用程序运行良好。好像Eclipse类路径入口问题,任何来自社区的 cmets 都会有所帮助
标签: java maven websphere eclipse-juno buildpath