在我的XPages项目中,我想使用名为ActiveMQ的第三方Java库。在Domino Designer中,我将包含所有类的jar文件添加到构建路径中。使用我自己的Java代码(而不是Java代理)中的类,我可以构建XPages应用程序而不会出现任何错误。
但是,当我尝试在XPage上运行我的Java函数时,我得到一个UnsupportedClassVersionError:
java.lang.UnsupportedClassVersionError :JVMCFRE003糟糕的主要版本; Class = org / apache / activemq / ActiveMQSslConnectionFactory,Offset = 6
后跟NoClassDefFoundError:
java.lang.NoClassDefFoundError : 组织/阿帕奇/ ActiveMQ的/ ActiveMQSslConnectionFactory
这可能只是由于第一个错误而发生的后续错误(如果我错了,请纠正我)。
UnsupportedClassVersionError建议使用比Domino服务器(Domino 9.0.1 FP4)上使用的Java版本更高的Java版本构建第三方库。执行System.getProperty("java.version")
会返回 1.6.0 (= Java 6)。根据{{3}},第三方Java库(ActiveMQ 5.8.0)已经使用jdk6 进行了编译,并使用jdk7"进行了验证。
有人可以告诉我为什么我会收到此错误,即使该库是使用我用来运行我的代码的相同Java版本构建的吗?
PS:在服务器计算机的命令行中执行java -version
会返回Java版本1.7.0,因为该计算机上已安装了另外的JRE7。然而,"应该"在XPage上执行的问题是Domino JVM的版本(1.6.0)。我还想提一下......
答案 0 :(得分:5)
Domino 9.0.1使用JVM 1.6(或6.0,具体取决于您的计算方式)。预计今年晚些时候的下一版本将升级到Java 1.8(8.0)。
要将ActiveMQ与JVM 1.6一起使用,您需要坚持versions up to 5.10,您可以从the archive pages(或Maven)下载。{/ p>
让我们知道它是怎么回事