2017-03-28 184 views
0

我試着用這樣的代碼無法發送請求MQSeries服務

import com.ibm.mq.jms.*; 
import com.ibm.msg.client.wmq.WMQConstants; 

import javax.jms.Session; 
import javax.jms.TextMessage; 

public class MQSend { 
    public static void main(String[] args) 
    { 
      try { 
      MQQueueConnectionFactory cf = new MQQueueConnectionFactory(); 
      cf.setHostName("blabla"); 
      cf.setPort(15000); 

      cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT); 

      cf.setQueueManager(""); 
      cf.setChannel("blabla"); 

      MQQueueConnection connection = (MQQueueConnection) cf.createQueueConnection("blabla","blabla"); 

      MQQueueSession session = (MQQueueSession) connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); 
      MQQueue queue = (MQQueue) session.createQueue("blabla"); 

      MQQueueSender sender = (MQQueueSender) session.createSender(queue); 


      long uniqueNumber = System.currentTimeMillis() % 1000; 

      TextMessage message = (TextMessage) session.createTextMessage("Basic Queue Test "+ uniqueNumber); 

      // Start the connection 
      connection.start(); 
     //  sender.send(message); 

      System.out.println("Sent message to Queue MyTestQueue: " + message.getText()); 
     // sender.close(); 
      session.close(); 
      connection.close(); 
      System.out.println("Message Sent OK.\n"); 
     } 

     catch (Exception ex) { 
      System.out.println(ex); 
      System.out.println("Message Send Failure\n"); 
     } 
    } 
} 

Exception in thread "main" java.lang.NoClassDefFoundError: com/ibm/msg/client/commonservices/trace/Trace 
at com.ibm.msg.client.jms.internal.JmsReadablePropertyContextImpl.<clinit>(JmsReadablePropertyContextImpl.java:51) 
at com.hsbc.hbfr.test.automation.tools.jrb.plugins.itm.MQSend.main(MQSend.java:14) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:497) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 
Caused by: java.lang.ClassNotFoundException: com.ibm.msg.client.commonservices.trace.Trace 

所以問題是Java無法得到適當的罐子COM/IBM /味精發送請求/ client/commonservices/trace/Trace 但我甚至不在代碼中使用這種依賴關係,有什麼建議嗎? 謝謝

回答

0

您是否在服務器上安裝了MQ客戶端?您是否按照文檔將所有MQ jar文件放入CLASSPATH中?看起來你錯過了至少一個。