3

断続的なリンケージ エラーがスローされます: (基本的に、これがすべての情報です)

java.lang.LinkageError loader constraint violation: 
  when resolving field 'service' of the class loader instance of 
  java/net/FactoryURLClassLoader) of the referring class 
  org/apache/axis/client/Stub, and the class loader (instance of
  weblogic/utils/classloaders/ChangeAwareClassLoader) 
  for the field's resolved type, java/xml/rpc/Service, 
  have different class objects for that type

または、より読みやすい方法で

  • 例外: java.lang.LinkageError

    • 分野: service
    • CL インスタンス: java.net.FactoryURLClassLoader
    • 参照クラス: org.apache.axis.client.Stub
    • 2 番目の CL インスタンス: weblogic.utils.classloaders.ChangeAwareClassLoader
    • フィールドの解決タイプ: java.xml.rpc.Service

これは、2 つのバージョンの java.xml.rpc.Service がロードされているということですか? そうですか?どうすればそれが起こりますか?それを解決する方法は何ですか?

4

2 に答える 2

2

解決策は、最終的にweblogic-application.xmlデプロイされたアプリのファイルを更新することでした

jaxrpc-api.jarアプリケーションは、さまざまな理由で削除できなかった古いものを使用していましたが、

内部jarを優先するために使用した解決策はこれでした(より良い方法はありますか?)

<wls:prefer-application-packages>
  ...
  <wls:package-name>java.xml.rpc.*</wls:package-name>
</wls:prefer-application-packages>
于 2012-04-04T15:49:16.753 に答える
2

これは、2 つのバージョンの java.xml.rpc.Service がロードされているということですか? そうですか?

はい。

どうすればそれが起こりますか?

これは、2 つのクラスローダーが両方とも同じクラスをロードしている場合に発生します。あなたの場合、クラスローダーは異なる ClassLoader クラスのインスタンスです。

    java.net.FactoryURLClassLoader

    weblogic.utils.classloaders.ChangeAwareClassLoader

それを解決する方法は何ですか?

私は Weblogic ユーザーではありませんが、理論上の解決策は、問題のクラスを含む JAR ファイルを、上記の 2 つの共通の祖先クラスローダーのクラスパスに配置することです。

于 2012-04-03T16:26:57.390 に答える