I have an intermittent linkage error thrown: (That's basically all the information I have)
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
Or in a more readable way
Exception: java.lang.LinkageError
service
java.net.FactoryURLClassLoader
org.apache.axis.client.Stub
weblogic.utils.classloaders.ChangeAwareClassLoader
java.xml.rpc.Service
Does this mean that I have 2 versions of java.xml.rpc.Service loaded? Is that so? How can that happen? what is the way to resolve it?
The solution was eventually to update the weblogic-application.xml
file of the deployed app
The application used an old jaxrpc-api.jar
that we could not remove for various reason,
The solution we used to prefer the internal jar was this (Is there a better way?)
<wls:prefer-application-packages>
...
<wls:package-name>java.xml.rpc.*</wls:package-name>
</wls:prefer-application-packages>