Ibm mq 用于通道状态的IBM MQ PCFMessage代理

Ibm mq 用于通道状态的IBM MQ PCFMessage代理,ibm-mq,Ibm Mq,我正在尝试使用PCFMessageAgent检索远程队列管理器的通道状态。当我试图创建它的实例时,我得到了下面的错误 Exception in thread "main" java.lang.NoClassDefFoundError: com/ibm/mq/internal/MQCommonServices at com.ibm.mq.pcf.PCFAgent.getJmqiEnv(PCFAgent.java:124) at com.ibm.mq.pcf.PCFAgent.<in

我正在尝试使用PCFMessageAgent检索远程队列管理器的通道状态。当我试图创建它的实例时,我得到了下面的错误

Exception in thread "main" java.lang.NoClassDefFoundError:
com/ibm/mq/internal/MQCommonServices    at
com.ibm.mq.pcf.PCFAgent.getJmqiEnv(PCFAgent.java:124)   at
com.ibm.mq.pcf.PCFAgent.<init>(PCFAgent.java:132)   at
com.ibm.mq.pcf.PCFAgent.<init>(PCFAgent.java:146)   at
com.ibm.mq.pcf.PCFMessageAgent.<init>(PCFMessageAgent.java:126)     at
com.sample.model.Test2.main(Test2.java:77) Caused by:
java.lang.ClassNotFoundException: com.ibm.mq.internal.MQCommonServices
    at java.net.URLClassLoader$1.run(Unknown Source)    at
java.net.URLClassLoader$1.run(Unknown Source)   at
java.security.AccessController.doPrivileged(Native Method)  at
java.net.URLClassLoader.findClass(Unknown Source)   at
java.lang.ClassLoader.loadClass(Unknown Source)     at
sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)  at
java.lang.ClassLoader.loadClass(Unknown Source)     ... 5 more 
我包括

  • com.ibm.mq.jar
  • com.ibm.mq.headers.jar
  • com.ibm.mq.commonservices.jar
  • com.ibm.mq.jmqi.jar
  • com.ibm.mq.pcf.jar
  • com.ibm.mqjms.jar
  • 连接器.jar
  • dhbcore.jar
  • fscontext.jar
  • providerutil.jar
  • 此外,我还尝试使用PCFMessageAgent的其他构造函数创建实例。它每次都抛出相同的异常。注意:我能够连接到队列管理器并执行诸如获取或将消息放入队列等操作

    谁能告诉我我错过了什么? 还有其他人面临过同样的问题吗?
    提前感谢。

    您确定commonservices.jar在运行时可用吗?我相信它编译得很好,但在运行时抛出NoClassDefFoundError。
        MQEnvironment.hostname = hostname;           
        MQEnvironment.port  = port;            
        MQEnvironment.channel = channel;
        MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
        MQQueueManager qMgr=null;
        PCFMessageAgent agent =null;
             try {
                qMgr = new MQQueueManager(qManager);
                agent = new PCFMessageAgent (qMgr);
                mes= new PCFMessage(CMQCFC.MQCMD_INQUIRE_CHANNEL_STATUS);
                mes.addParameter(CMQCFC.MQCACH_CHANNEL_NAME, "*");
                mes.addParameter(CMQCFC.MQIACH_CHANNEL_TYPE, CMQXC.MQCHT_ALL);
                mes.addParameter(CMQCFC.MQIACH_CHANNEL_INSTANCE_ATTRS,
                                  new int []
                                  {
                                     CMQCFC.MQCACH_CHANNEL_NAME,
                                     CMQCFC.MQCACH_CONNECTION_NAME,
                                     CMQCFC.MQIACH_CHANNEL_STATUS,
                                     CMQCFC.MQIACH_CHANNEL_SUBSTATE,
                                     CMQCFC.MQIACH_MSGS,
                                     CMQCFC.MQCACH_LAST_MSG_DATE,
                                     CMQCFC.MQCACH_LAST_MSG_TIME,
                                     CMQCFC.MQCACH_CHANNEL_START_DATE,
                                     CMQCFC.MQCACH_CHANNEL_START_TIME,
                                     CMQCFC.MQIACH_BYTES_SENT,
                                     CMQCFC.MQIACH_BYTES_RECEIVED,
                                     CMQCFC.MQIACH_BUFFERS_SENT,
                                     CMQCFC.MQIACH_BUFFERS_RECEIVED,
                                     CMQCFC.MQIACH_MCA_STATUS,
                                     CMQCFC.MQCACH_MCA_JOB_NAME,
                                     CMQCFC.MQCACH_MCA_USER_ID
                                  } );
                      res = agent.send(mes);
                      }
                      catch(Exception e){
                      e.printStackTrace();
                      }