0 Replies Latest reply on Jul 14, 2006 1:27 PM by msolnit

    Trouble with LinkageError

    msolnit

      I must admit, I've read a lot of the documentation (including the three class loader articles on the wiki), and some other forum posts, and I still don't get it.

      The goal is the following:
      1) Use our own copy of any utility JAR's we choose to deploy (STaX, for example, or Apache Axis).
      2) Use the JBoss copy of any utility JAR's that we don't deploy (Xerces, for example).
      3) Have both a "production" and a "development" version of our product running in the same JBoss instance.

      We deploy our app as an EAR file containing utility JAR's and a single WAR. To make everything work correctly, I've added the following jboss-app.xml file:

      <jboss-app>
       <loader-repository>
       www.foo.com:loader=foo-demo.ear
       <loader-repository-config>
       java2ParentDelegation=true
       </loader-repository-config>
       </loader-repository>
      </jboss-app>
      


      The development version and the production version have different JMX names for the loaders.

      With this configuration, everthing was working fine, until I tried to use an Apache Axis client for a web service.

      All of a sudden, we are getting "java.lang.LinkageError: loader constraints violated when linking javax/xml/soap/MimeHeaders class" whenever we try to use this client.

      The weird things:
      1) Whichever version of the app is accessed first will work. So for example, if I hit production first then production works and dev fails, vice versa.
      2) The JMX console shows that javax.xml.soap.MimeHeaders is being loaded into a single UCL for each hierarchical loader, which is what we want, right?

      I would appreciate any help.

      Sincerely,
      Matt