Friday February 25, 2005
JBoss ClassLoader Logic Is there any logic to how JBoss puts all WARs, EARs and their accompanying JARs into the same ClassLoader? It seems logical that I should be able to deploy different versions of a JAR in different WARs. This works fine on Tomcat, but doesn't seem to on JBoss. Is there someway to turn this segmentation on? Posted in Java at Feb 25 2005, 08:00:36 AM MST 11 Comments
Matt Raible is a Web Architect who enjoys developing applications with open source technologies. Contact me for rates.
Search This Site
Recent Entries
- What's Next
- Jack's Mohawk
- LinkedIn Cuts 10% (a.k.a. The Journey is Over)
- Happy Birthday Abbie!
- Moving from Spring's XML to Annotations in AppFuse
- Free Maven Training in New Orleans on Election Day
- AppFuse Light ยป AppFuse, Maven Archetypes and Shared Web Assets
- Great Weekend in Montana
- Colorado Software Summit 2008 Wrapup
- RESTful Web Applications with Subbu Allamaraju
To answer your question : you should have a look at the "UseJBossWebLoader" attribute in your jboss-service.xml.
BTW, you might be interested by this blog entry (from my own blog) :
http://jroller.com/comments/julien.dubois?anchor=the_jboss_classloader_from_hell
HTH,
Julien.
Posted by Julien Dubois on February 25, 2005 at 08:21 AM MST #
in your apps jboss-app.xml. See http://members.capmac.org/~orb/blog.cgi/tech/java/jboss_ucl.html & http://docs.jboss.org/jbossas/admindevel326/html/ch2.chapter.html#ch2.scopedapp.ex although I don't use JBoss myself, so can't verify it works...
Posted by Gwyn Evans on February 25, 2005 at 08:31 AM MST #
Posted by Rob Kischuk on February 25, 2005 at 08:44 AM MST #
Posted by Rob Kischuk on February 25, 2005 at 08:46 AM MST #
1. In $JBOSS_HOME/server/default/deploy/jbossweb-tomcat50.sar/META-INF/jboss-service.xml (assuming we're talking about the "default" server), inside the <mbean code="org.jboss.web.tomcat.tc5.Tomcat5" name="jboss.web:service=WebServer"> tag, make sure <attribute name="UseJBossWebLoader">false</attribute> is present. I belive its value defaults to true.
2. In $JBOSS_HOME/server/default/conf/jboss-service.xml, ensure that the following tags are present among the mbean definitions:
<mbean code="org.jboss.deployment.EARDeployer" name="jboss.j2ee:service=EARDeployer"><br/> <attribute name="Isolated">true</attribute><br/> <attribute name="CallByValue">true</attribute><br/> </mbean>I'm pretty sure the "jboss.j2ee:service=EARDeployer" mbean is defined in there by default, but the attribute values allow classpath promiscuity by default. These values should make you happy.I'm told the better solution is to use JBoss 4. I think it conforms to the J2EE spec by default in this regard, but we don't use it in production yet, so I'm stuck with this silliness for now.
Posted by Tim Berglund on February 25, 2005 at 09:02 AM MST #
Posted by Tim Berglund on February 25, 2005 at 09:06 AM MST #
Posted by Matt Raible on February 25, 2005 at 09:15 AM MST #
Posted by Anil Gangolli on February 27, 2005 at 09:51 AM MST #
Posted by Anbu on April 27, 2006 at 12:00 PM MDT #
Posted by Matt Raible on April 27, 2006 at 09:26 PM MDT #
Posted by Pablo Molina on September 26, 2007 at 02:25 AM MDT #