无法向MQSeries服务发送请求

时间:2017-03-28 09:19:15

标签: queue ibm-mq

我试图用这样的代码发送请求

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 / msg / client / commonservices / trace / Trace获取合适的jar 但我甚至没有在代码中使用这种依赖,有什么建议吗? 感谢

1 个答案:

答案 0 :(得分:0)

您是否在服务器上安装了MQ Client?您是否按照文档将所有MQ jar文件放在CLASSPATH中?看起来你错过了至少一个。