I'm running JBoss 4.0.4 GA on JDK 1.5.
Having repackaged my application to work with an isolated EAR classloader, I have specified the following in my jboss-app.xml:
<jboss-app> <loader-repository> myapp:loader=myapp.ear <loader-repository-config> java2ParentDelegation=false </loader-repository-config> </loader-repository> </jboss-app>
I also have ensured the following default values are used for the Tomcat classloading:
<attribute name="Java2ClassLoadingCompliance">false</attribute> <attribute name="UseJBossWebLoader">false</attribute>
Despite this, I am finding that I am getting a classloader conflict relating to commons-http-cilent.jar. This JAR is packaged as part of my EAR application (loaded by the application's EAR classloader), however, it is also a server/lib library which is shipped as part of JBoss 4.0.4.
Contrary to what the documentation states here:
Isolation with Overriding Server Classes
Use the following constructs to enabled scoped class loading with the deployment classes overriding the server classes.
<jboss-app> <loader-repository> com.example:loader=unique-archive-name <loader-repository-config> java2ParentDelegation=false </loader-repository-config> </loader-repository> </jboss-app>
I am basically finding that the older commons-httpclient.jar as shipped with JBoss - is being used INSTEAD of the jar file I've shipped as part of my EAR.
The only way I've found to resolve this issue is by following the documentation for JBoss 3.2.3 - as specified on this page:
which states that a change to the "Isolation" attribute in the ear-deployer.xml file is needed.
I don't see why I need to make a system wide change - by changing this value IN ADDITION to specifying that I want an isolated EAR classloader by means of the instructions defined in jboss-app.xml.
As far as my application is concerned - I want an isolated classloader for my EAR - I do not want to affect the inter-operability of other EAR applications deployed within the server by having to change the system wide property defined in ear-deployer.xml.
Can anyone confirm that I have indeed found a bug? Or is this oddly by design?