8

在 JBOSS EAP 6 (AS 7) 中:

我正在调用 Spring 的 WebServiceTemplate.marshalSendAndRecieve,而后者又无法找到 rt.jar 中存在的类

Caused by: java.lang.ClassNotFoundException: com.sun.org.apache.xerces.internal.dom.DocumentImpl

我不明白这怎么会发生?rt.jar 中的所有内容肯定会在启动时加载?

有任何想法吗?

谢谢,

肯尼

4

1 回答 1

16

好的,我找到了一个解决方案(不确定它是否正确,但它有效)。

我通过运行 java -verbose:class 注意到只加载了 rt.jar 中的一些类,而不是我需要的类(com.sun.org.apache.xerces.internal.dom.DocumentImpl)

所以在 JBoss EAP 6 (As 7) 中有一个模块目录 ($JBOSS_HOME/modules/) 并且在下面有 sun/jdk/main/modules.xml

我添加了以下条目:

<path name="com/sun/org/apache/xerces/internal/dom"/>
<path name="com/sun/org/apache/xerces/internal/xni"/>
<path name="com/sun/org/apache/xerces/internal/jaxp"/>

(最后 2 个因为后续类在添加 dom 后未发现异常)

正如我所说,我不能 100% 确定这是否是正确的方法。欢迎任何意见!

谢谢,

肯尼

于 2013-03-28T16:10:08.720 回答