[jboss-user] [Installation, Configuration & DEPLOYMENT] - Isolation with shared libraries instances?

jguyard do-not-reply at jboss.com
Wed Jan 14 10:15:18 EST 2009


Hi all,

this is my first time posting here.

First of all, I've read almost everything here: http://www.jboss.org/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html-single/index.html#Inside_the_JBoss_Class_Loading_Architecture-The_core_JBoss_class_loading_components


I'm working with JBOSS 4.2.3 and my current mission is to deploy the same ear twice in the same jboss server instance.
I had isolation problems (ClassCastException,...), so I decided to start with something very easy and write this TestCase:

I have a ear containing a servlet. This servlet, when requested, prints the fully qualified name of a singleton and his memory address. So here is what I have (TestCase2.ear is a duplication of TestCase1.ear with a different context-root for requesting them seperatly):

server
  | |
  | --- deploy
  | |   |
  | |   --- ear-deployer.xml   (isolated parameter setted to true)
  | |   |
  | |   --- TestCase1.ear
  | |   |   |
  | |   |   --- TestCase1.war
  | |   |       |
  | |   |       --- WEB-INF
  | |   |           |
  | |   |           --- classes
  | |   |           |   |
  | |   |           |   --- myServlet.class
  | |   |           |
  | |   |           --- lib
  | |   |               |
  | |   |               --- mySingleton.jar
  | |   --- TestCase2.ear
  | |   |   |
  | |   |   --- TestCase2.war
  | |   |       |
  | |   |       --- WEB-INF
  | |   |           |
  | |   |           --- classes
  | |   |           |   |
  | |   |           |   --- myServlet.class
  | |   |           |
  | |   |           --- lib
  | |   |               |
  | |   |               --- mySingleton.jar

RESULT: The servlets print the same fully qualifiedName but different memory addresses. Until now everything is how I expected.

______________________________________________________

Then this is the second test:


server
  | |
  | --- deploy
  | |   |
  | |   --- ear-deployer.xml   (isolated parameter setted to true)
  | |   |
  | |   --- TestCase1.ear
  | |   |   |
  | |   |   --- TestCase1.war
  | |   |       |
  | |   |       --- WEB-INF
  | |   |           |
  | |   |           --- classes
  | |   |               |
  | |   |               --- myServlet.class
  | |   |           
  | |   --- TestCase2.ear
  | |   |   |
  | |   |   --- TestCase2.war
  | |   |       |
  | |   |       --- WEB-INF
  | |   |           |
  | |   |           --- classes
  | |   |               |
  | |   |               --- myServlet.class
  | |   |
  | --- lib
  | |   |
  | |   --- mySingleton.jar

RESULT: The servlets print the same fully qualifiedName, the same classloader (UnifiedClassLoader3) AND the same memory addresses. This is very troublesome because this is not what I was waiting.

I fully understand why they are loaded by the same UCL. For me, every jars in the lib directory of the server are shared libraries. But I don't understand why instances are shared between ears.

Is this some kind of bug? Or is there another "shared lib directory" to do what I try to do?



Regards,

J. Guyard

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4201829#4201829

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4201829



More information about the jboss-user mailing list