在我机器上安装的是JDK6,下载activeMQ5.3启动时报错,提示jaxb包已经加载2.0版本无法加载2.1版本。
我通过网络搜索了一下发现,jaxb2.0是JDK发布时包含在rt.jar包中的。但是activeMQ5.3却需要2.1版本。这该如何处理?
总不能将rt.jar包解开,将jaxb2.1的类覆盖进去,再重新打包吧。这样太麻烦了。
再次进行网络搜索,发现JDK提供了一个endorsed目录,该目录是由系统变量System.getProperty("java.endorsed.dirs") 定义的。默认情况下一般都是${JAVA_HOME}/jre/lib/endorsed 目录。放在该目录下的jar包可以替换掉JDK默认的jar包。
将activeMQ中的jaxb2.1包放入该目录,再次启动activeMQ,问题解决。