ActiveMq使用过程中的问题

来源:互联网 发布:联通网络电视怎么开 编辑:程序博客网 时间:2024/05/21 22:49
1.相信大家在需要使用ActiveMQ时,会先想到去官网看一下,摘取一段示例代码,按照指示进行操作。相信大家看了官网的示例后,很快就可以使用,成本很低。
以Java语言为例,ActiveMQ官网上会给我出一段代码,并指定pom文件,告诉activemq-all-5.8.0即可满足要求,不用添加其它的依赖。
如果是新创建一个工程,引入这个依赖(activemq-all-5.8.0),很快可以run起来。
但是我在已有的工程中使用,却始终跑不起来,一直报各种乱七八糟的错。Tomcat死活起不来。
我纠结了好长时间 ,根据错误信息去检索,一直得不到答案。
后来,偶尔想到是否是依赖包冲突的原因导致,于是去lib目录中看,发现slf4j-xxx.jar有两份,有1.6和1.5的。而在tomcat的local日志中也发现报了slf4j1.6与其它1.5x版本不兼容的问题。于是想莫非冲突由于activemq-all下载了依赖包slf4j导致,在activemq-all-5.8.0的pom文件中发现,确实有这个东西存在。它里面集成了很多的jar包依赖,是个非常庞大的东西。于是果断先去掉activemq-all-5.8.0的dependency。重新启动tomcat,成功!喜极而泣啊,感谢苍天,感谢大地。

于是,我果断用比较纯净的activemq-core来代替它,进而加上spring-jms的配置,如下:
          activemq
          activemq
          release-2.1
      
      
          org.apache.activemq
          activemq-core
          5.2.0
      
      
          org.springframework
          spring-jms
          3.1.1.RELEASE
      
重新编译,启动tomcat,一切ok。在此过程中,我还遇到了spring-jms其它版本产生的spring-context的包版本与spring.jar产生的spring-context的jar冲突的情形,一起解决之。
总之,由于maven天生具有不能解决依赖包版本冲突的问题,大家在遇到问题时,不可小视版本冲突的因素。在写依赖时,尽量使用相同的版本。
0 0
原创粉丝点击