JBoss中不同应用之间如何共享类和资源:通常如果希望在JBoss不同应用之间共享类和资源,我们应将类和资源放在jboss/server/default/lib/下面,这样所有的应用可以共享资源;
JBoss中如果类和和资源放在不同的war包中,却想在不同的应用间何共享WAR包中WEB-INF/classes和WEB-INF/lib中的资源,能否做到哪?
可以通过jbossweb-tomcat-55.sar/META-INF/jboss-service.xml配置文件中配置属性UseJBossWebLoader来解决该问题,只要将该属性设置为true:表示Tomcat使用JBoss的统一类加载器作为Web应用的类加载器这意味着WAR包中WEB-INF/classes和WEB-INF/lib目录里的类将被加载到缺省的共享类加载器仓库中。通过它,可以实现类和资源在Web应用之间共享。但是,如果这不是你想要的情况,可以通过将该属性设置为false来避免这种行为。
< attribute name="UseJBossWebLoader" > true < /attribute >
通常情况下应该避免使用这种情况,因为当不同的应用中拥有同样的类和资源的时候,JBoss不同应用之间会产生冲突;举例如下:
两个war应用 WarA,WarB下面均有com.liuxiang.A.class文件;
现在期望每个War包下面分别用各自的A.class文件,当修改一个WarA的应用时候,tomcat会重新部署以下应用。这个时候,就会出现WarA应用使用WarB下面的A.class,造成混乱。
【编辑推荐】