Jboss7.1.1中升级hornetq

公司的项目是电信行业的OMC网管系统,系统前端采用SWing做界面,通过EJB调用后端服务进行分布式处理,处理结束后根据操作的结果使用JMS消息更新界面。

由于使用的是EJB,因此服务需要部署在EJB容器中,为了节约成本,使用的是开源的Jboss服务器。

由于jboss7.1.1后不再提供社区版本的下载,为了从hornetQ2.2.13升级到2.2.23确实费了不少功夫。不过收获也不少,这里与大家分享下。

首先需要下载jboss,通过google,查询hornetQ2.2.23 发现与jboss7.1.3版本比较一致。

这里打开google比较卡,有兴趣的可以在google中输入hornetQ2.2.23 ,在redhat官方会给你一些版本的说明。

由于jboss7.1.3,官方不提供直接的下载,我们只能自己动手

复制下边的网址,可以看到有jboss7.1.3的源码:“https://github.com/jbossas/jboss-as/tags”

 

下载完成后,自己就可以编译版本,由于编译需要联网,并且网速不行的话会造成编译失败,多试几次就可以。windows的编译如下:

 

>build.bat -DskipTests install

 

编译完成后会在build文件夹下有个target的文件夹下就是编译成功的jboss版本,双击bin目录下的standlone.bat就可以运行。

linux下或solaris下情参考“http://blog.kaltepoth.de/posts/2013/02/12/building-jboss-as7.html”

jboss编译成功后,开始进行hornetQ的升级。

首先把hornetQ 2.2.23版本替换到jboss 7.1.1中,然后启动jboss,不出意外,jboss将不会启动成功。

查看启动日志,返现jboss有的messaging模块会调用hornetQ 中的注册方法,但hornetQ2.2.23已更改了这个类,因此遇到了问题。

尝试更新这个模块,发现越更换问题越多,最后只能放弃。

 

然后比较着两个版本的hornetQ源码,发现变换挺大,然后比较两个jboss的messaging模块源码,尝试替换调用hornetQ的那个类文件,发现终于可以。那个类应该叫做A7RecoveryRegistry,直接更换jboss7.1.1中的messaging模块的那个类文件就可以。

 

通过接近三天的努力,

1)学会了获取开源项目的源文件并编译成需要的版本;

2)分析开源源码并更换开源文件jar文件也没有那么相像的困难。

 

在这里与大家共勉!加油!

你可能感兴趣的:(jboss7)