2016-03-03 24 views
1

在我的XPages項目中,我想使用名爲ActiveMQ的第三方Java庫。在Domino Designer中,我將包含所有類的jar文件添加到構建路徑。在我自己的Java代碼(而不是Java代理)中使用這些類可以工作,並且我可以無任何錯誤地構建XPage應用程序。使用第三方Java庫時獲取UnsupportedClassVersionError

然而,當我嘗試在XPage上運行我的Java功能,我得到一個UnsupportedClassVersionError:

java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; Class=org/apache/activemq/ActiveMQSslConnectionFactory, Offset=6

後跟一個NoClassDefFoundError的:

java.lang.NoClassDefFoundError: org/apache/activemq/ActiveMQSslConnectionFactory

這可能只是由於後續錯誤發生的歷史到第一個(糾正我,如果我錯了)。

UnsupportedClassVersionError表明第三方庫的構建版本高於Domino服務器(Domino 9.0.1 FP4)上使用的Java版本。執行System.getProperty("java.version")返回1.6.0(= Java 6)。根據release notes,第三方Java庫(ActiveMQ 5.8.0)已被編譯爲「jdk6」並使用jdk7進行了驗證「」。

有人可以告訴我爲什麼我會得到這個錯誤,即使庫已經用我用來運行我的代碼的相同Java版本構建?


PS:因爲額外的JRE7已安裝在該計算機上的服務器計算機的命令行執行java -version返回Java版本1.7.0。然而,「應該」在XPage上執行的版本是Domino JVM(1.6.0)的版本。我仍然想提及...

+4

這不是與Java兼容6.嘗試5.10系列,而不是=> http://activemq.2283324.n4.nabble.com/is-activemq-5-11-1 -compatible-with-java-1-6-td4692124.html –

+0

@SvenHasselbach:在發佈我的問題之前,我已經閱讀了你鏈接的主題,但由於它是關於ActiveMQ 5.11不支持Java 6的,我只確保我使用的版本低於此 - 這就是爲什麼我使用5.8版本:發行說明明確地說它是用JDK6編譯的......我想說的是:我不明白5.8爲什麼不起作用,但奇怪的是5.10能工作。非常感謝您的評論 - 它解決了我的問題。你能否寫下評論作爲答案,因爲我很樂意爲你提供一些幫助。 –

回答

5

達到9.0.1的Domino使用JVM 1.6(或6.0,具體取決於您的計算方式)。預計今年晚些時候的下一個版本將升級到Java 1.8(8.0)。

要將ActiveMQ與JVM 1.6一起使用,您需要堅持使用versions up to 5.10,您可以從the archive pages(或Maven)下載該文件。

讓我們知道如何去

+0

感謝您的回答。我知道我必須使用<5.11的ActiveMQ版本,這就是我使用5.8的原因。由於來自@SvenHasselbach的評論,我在5.10版本中嘗試了它,並且出於我未知的原因,它現在可以工作。 –

+2

@ sven-hasselbach是一位頂尖的專家。總是有幫助 – stwissel