0

JBOSS は以下を投げています:

java.lang.NoSuchMethodError: org.w3c.dom.Document.getDocumentURI()Ljava/lang/String;

wsdl のロード中にエラーが発生しました。システムまたはアプリケーション サーバー ライブラリではなく、WAR 内のライブラリを優先するように構成できますか?

4

1 に答える 1

1

アプリ サーバーは、システムおよびアプリ サーバー ライブラリ パスと共に、内の JAR を既に使用している必要があります。これに対する標準的なアプローチは、ClassLoader がクラス ロードをアプリ サーバー ライブラリに委任し、クラス ロードをサーバー ライブラリに委任することです。親クラスローダがクラスを見つけられない場合にのみ、独自のクラスをロードしようとします。WEB-INF/libWEB-INF/lib

つまり、WEB-INF/libアプリサーバーの lib に同じクラスを配置すると、常に後者の JAR が使用されます。これは、名前が同じでも異なるバージョンのクラスを両方WEB-INF/libとアプリケーション サーバーの lib で利用できるようにすることで、競合が発生する可能性があることを意味します。これが問題の原因ではないでしょうか? 競合を解決できますか?

一部のアプリケーション サーバー (JBoss についてはわかりませんが、WebSphere で許可されていることは知っています) では、子ローダーが最初にチェックされるようにクラスローダーを構成できます (子優先と親優先) が、このタイプの構成では別の問題が発生する可能性があります。

于 2009-02-05T00:02:11.073 に答える