2012-12-14 148 views
6

這是類似於早期的問題Exception in thread 「main」 java.lang.NoClassDefFoundError: com/ibm/mq/MQExceptionjava.lang.NoClassDefFoundError:COM/IBM/MQ /的MQException

我面臨着類似的問題,在Linux中。我已經安裝了以下內容:

MQSeriesRuntime-7.0.1-3.x86_64.rpm
MQSeriesSDK-7.0.1-3.x86_64.rpm
MQSeriesJava-7.0.1-3.x86_64.rpm
MQSeriesServer -7.0.1-3.x86_64.rpm

當我創建一個執行組,我得到:
java.lang.ClassNotFoundException: com.ibm.mq.MQException

CLASSPATH使用此行代碼設置:
export CLASSPATH=$CLASSPATH:/opt/mqm/java/lib/com.ibm.mq.jmqi.jar:/opt/mqm/java/lib/com.ibm.mq.jar:.

代理版本是8.0.0.1,MQ版本是7.0.1.3。你能提出什麼問題嗎?根據之前的回答,我是否應該安裝客戶端?

回答

3

不,您不需要安裝客戶端。另一個問題的回答是基於客戶端罐子的非標準安裝。在這種情況下,您似乎有WMQ服務器的標準安裝。除了您提供的RPM之外,MQSeries JRE還有一個RPM,但我並不認爲這是問題。你顯然有一些JRE,大概是經紀人安裝的。

所以這應該歸結爲鑑別診斷的情況。分而治之。

  1. 您是否已成功運行MQIVT程序或任何其他Java程序?如果你這樣做,並強迫異常,發生了什麼?這告訴我們它是全系統還是僅限於Broker的環境。
  2. 你在哪裏輸出CLASSPATH?在經紀商賬戶的.profile中?代理啓動腳本?您是否確定它在經紀人開始時被解析?
  3. 爲什麼不使用Environment variables relevant to WebSphere MQ classes for Java中描述的/opt/mqm/java/bin/setjmsenv命令?在代理啓動腳本中採購此腳本將捕獲所有相關的類,並且以在升級到更高版本時一致地工作的方式執行。
  4. 您正在使用哪種JRE?如果它不是與Broker一起安裝的,那麼它可能是錯誤的版本或來自不受支持的JRE提供程序。

發佈的問題中沒有足夠的信息來提供自信的答案,但回答這些診斷問題應該有助於縮小範圍或完全解決問題。

5

由於缺少MQ JAR文件,您需要查看WMQ使用Java手冊(WMQ v7.0.1。*)。

對於MQ基本Java(不MQ/JMS),你需要至少5個MQ JAR文件:

  • com.ibm.mq.jar
  • connector.jar
  • com.ibm。 mq.jmqi.jar
  • com.ibm.mq.headers。罐子
  • com.ibm.mq.commonservices.jar
相關問題