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"/>

(DOM に追加した後、後続のクラスが例外を検出しなかったため、最後の 2 つ)

私が言ったように、これがこれを行う正しい方法であるかどうかは100%確信が持てません。どんな入力でも大歓迎です!

ありがとう、

ケニー

于 2013-03-28T16:10:08.720 に答える