Как мне разрешить этот Weblogic неустойчивый java.lang.LinkageError?Какие шаги для понимания того, что это значит и исправить это? - PullRequest
1 голос
/ 03 апреля 2012

У меня периодически возникает ошибка связи: (Это в основном вся информация, которая у меня есть)

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? Это так? Как это может случиться? как это решить?

Ответы [ 2 ]

1 голос
/ 04 апреля 2012

В конечном итоге было решено обновить weblogic-application.xml файл развернутого приложения

Приложение использовало старую jaxrpc-api.jar, которую мы не могли удалить по разным причинам,

Решение, которое мыраньше предпочитал, чтобы внутренняя банка была такой (есть ли лучший способ?)

<wls:prefer-application-packages>
  ...
  <wls:package-name>java.xml.rpc.*</wls:package-name>
</wls:prefer-application-packages>
1 голос
/ 03 апреля 2012

Значит ли это, что у меня загружено 2 версии java.xml.rpc.Service?Это так?

Да.

Как это может произойти?

Это происходит, когда два загрузчика классов загружают один и тот же класс.В вашем случае загрузчики классов - это экземпляры разных классов ClassLoader:

    java.net.FactoryURLClassLoader

и

    weblogic.utils.classloaders.ChangeAwareClassLoader

Как это решить?

Я не пользователь Weblogic, но теоретическое решение состоит в том, чтобы поместить файл JAR, содержащий рассматриваемые классы, в путь к классам загрузчика классов общего предка из двух приведенных выше.

...