[jboss-user] [JBoss Seam] - Re: Seam configuration questions

norman.richards@jboss.com do-not-reply at jboss.com
Fri Dec 8 18:25:50 EST 2006


For in-depth classloader discussions, you are probably better off in one of the JBoss AS forums.

1) Yes, each deployment gets 1 UCL that covers the entire archive, including sub-deployments

2) Every class in a deployment can see every other class in that same deployment (WAR files are a special case)

3) WAR files are special because the servlet spec says they should be special.  If you have two WAR files in an EAR, they should not see eachothers classes.  So, JBoss does not add WEB-INF/classes or WEB-INF/lib/* to the UCL by default.  You can change this behavior by setting the UseJBossWebLoader option.  When you do that, tomcat will use the deployment UCL for web app loading, making everything visible throughout your app.  

4) Every archive has it's own UCL.   A scoped application has a UCL that points to it's own repository instead of to the main repository. 

5) In general, one app should be able to look up and use beans in another app on the same server.   If there aren't common class definitions between the two apps, you have to go through serialization.  This is costly, though JBoss people often make the mistake of over-emphasizing the cost.  (by comparing the cost of serialization to the cost of a direct call without considering the amount of work being done in the call)  


My general belief is that shared class definitions is a bad thing for applications and a good thing for services.  I would always scope my applications in the absence of a compelling reason not to.  

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

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



More information about the jboss-user mailing list