jboss公共jar管理

来源:互联网 发布:广东房卡麻将源码 编辑:程序博客网 时间:2024/04/29 22:29



最近在搭项目的开发环境,需要在远程服务器上部署ejb项目,这些项目中自定义了很多相同的jar包,如果将这些jar打到工程的warear中,随他们一起发布,那么便会冗余很多jar,这种做法不可取,直接就否掉了,不可能在每一个工程的war或ear中都加入这些jar,那么到底怎么办了,我相信一定有人在我之前已经考虑过这种问题。

 

 

考虑了如下解决方案:

 

1、直接扔到JBOSS_HOME/server/default/lib下,随JBoss的jar一起加载。

 

这种方式可以加载成功,但是和jboss自己的jar混在一起,不方便对自己的jar进行管理,所以继续探索,看看是不是有更好的方式。

 

2、修改JBOSS_HOME/bin/run.bat,在classpath中加载这些jar,如下


set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;D:/CommonLib/myjar1.jar  set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;D:/CommonLib/myjar2.jar 


 

这种方式也能加载成功,但是这些jar中的类却无法使用JBoss环境提供的各种jar(例如:servlet-api.jar),这大概是jboss类加载器的加载机制导致的。查了半天jboss类加载器的内容,找到了如下的解决方案。

 

3、发现JBoss启动时,加载哪些jar包,以及从哪里加载,都是可以在JBOSS_HOME/server/default/conf/jboss-service.xml中配置的。

 

配置如下:

 

<classpathcodebase="${jboss.server.lib.url:lib}"archives="*"/>  <classpath codebase="file:/D:/CommonLib"archives="*"/>


 

这样,事情就简单了,就可以将工程的jar包放到任何地方,便于规整管理。但问题又来了,大家肯定注意到这个路径是绝对路径,那怎么引入相对路径呢?

 

项目比较紧,暂时没有找到合适的方法,先放一放,回头补上。