繁体   English   中英

“包 com.ibm.mq 不存在”错误

[英]"package com.ibm.mq does not exist" error

我正在使用基于 IBM MQ 的 jar 来浏览我的队列以查找特定消息。 在通过 Maven 构建这个项目时,我遇到了这个问题package com.ibm.mq does not exist

我也在构建路径lib文件夹中添加了这个 jar。

由于com.ibm.mq导入,我编写此逻辑的控制器类没有显示任何编译错误。 但是我在通过 Maven 构建时遇到了这个错误!

应该做些什么吗?

请帮忙。

MQ控制器

package main.java.controller;

import java.io.*;
import java.util.Properties;
import java.util.Calendar;
import com.ibm.mq.*;

public class MQController {

   private static String    myQmgr  = "QSOA";
   private static String    myQueue = "MQ.EVENTS.POLICY.DUMMY";

   public MQController() {
      myQmgr  = System.getProperty("qm");
      myQueue = System.getProperty("q");
      try {
         Properties props = new Properties(System.getProperties());
         props.load(new BufferedInputStream(new FileInputStream("MQController.properties")));
         System.setProperties(props);
      } catch (Exception e) {
         System.out.println("Error getting MQController.properties: " + e.getMessage());
         System.err.println(e);
      }

      /*if (myQmgr  == null)       {myQmgr  = System.getProperty("qm");}
      if (myQueue == null)       {myQueue = System.getProperty("q");}*/

   }

   public MQController(String[] args) {

      this(); /* call the default constructor */

      for( int i=0; i<args.length; i++ ) {
          String arg = args[i].toLowerCase();

            if( arg.equals("-qm") ) {
                if ( i+1<args.length ) {
                   myQmgr = args[++i];
                } else {
                   System.out.println("didn't specify qmgr, exiting");
                   return;
                }

            } else if( arg.equals("-q") ) {
                if ( i+1<args.length ) {
                   myQueue = args[++i];
                } else {
                   System.out.println("didn't specify queue, exiting");
                   return;
                }

            } else {
              System.out.println( "Unknown argument: " + arg );
            }
      }

   }

   public void myBrowser() {
      MQQueueManager qMgr        = null;
      MQQueue        browseQueue = null;
      int j = 0; /* used as a message counter */

      System.out.println("\n MQController.java - starts here");
      System.out.println("**************************");
      MQException.log = null; /* don't print out any exceptions */
      try {
         qMgr = new MQQueueManager(myQmgr);

         int openOptions = MQC.MQOO_BROWSE;
         browseQueue = qMgr.accessQueue(myQueue, openOptions, null, null, null);
         System.out.println("\n OPEN - '" + myQueue + "'\n\n");
         MQGetMessageOptions gmo = new MQGetMessageOptions(); 
         gmo.options = gmo.options + MQC.MQGMO_BROWSE_NEXT;
         MQMessage myMessage = new MQMessage();
         while (true) {
            myMessage.clearMessage();
            myMessage.correlationId = MQC.MQCI_NONE;
            myMessage.messageId     = MQC.MQMI_NONE;
            browseQueue.get(myMessage, gmo);
            j = j + 1;
            System.out.println(" GET of message number " + j);
            System.out.println("****Message descriptor****\n");
            System.out.println("  StrucId  : 'MD  '"    
                             + "  Version : " + myMessage.getVersion()); 
            System.out.println("  Report   : " + myMessage.report
                             + "  MsgType : " + myMessage.messageType);
            System.out.println("  Expiry   : " + myMessage.expiry
                             + "  Feedback : " + myMessage.feedback);
            System.out.println("  Encoding : " + myMessage.encoding 
                             + "  CodedCharSetId : " + myMessage.characterSet);
            System.out.println("  Format : '" + myMessage.format + "'");
            System.out.println("  Priority : " + myMessage.priority 
                             + "  Persistence : " + myMessage.persistence);
            System.out.print("  MsgId : ");
            System.out.print("  CorrelId : ");
            System.out.println("  BackoutCount : " + myMessage.backoutCount);
            System.out.println("  ReplyToQ     : '" 
                             + myMessage.replyToQueueName + "'");
            System.out.println("  ReplyToQMgr  : '" 
                             + myMessage.replyToQueueManagerName + "'");

            System.out.println("  ** Identity Context");
            System.out.println("  UserIdentifier : '" + myMessage.userId + "'");
            System.out.println("  Accounting Token :");
            System.out.print("   ");
            System.out.println("  ApplIdentityData : '" 
                                + myMessage.applicationIdData + "'");

            System.out.println("  ** Origin Context");
            System.out.println("  PutApplType    : '" 
                               + myMessage.putApplicationType + "'");
            System.out.println("  PutApplName    : '" 
                               + myMessage.putApplicationName + "'");

            System.out.print("  PutDate  : '");
            System.out.print(myMessage.putDateTime.get(Calendar.YEAR));
            int myMonth = myMessage.putDateTime.get(Calendar.MONTH) + 1;
            if (myMonth < 10) {System.out.print("0");}
            System.out.print(myMonth);

            int myDay = myMessage.putDateTime.get(Calendar.DAY_OF_MONTH);
            if (myDay < 10) {System.out.print("0");}
            System.out.print(myDay);
            System.out.print("'    ");

            System.out.print("PutTime  : '");
            int myHour = myMessage.putDateTime.get(Calendar.HOUR_OF_DAY);
            if (myHour < 10) { System.out.print("0"); }
            System.out.print(myHour);

            int myMinute = myMessage.putDateTime.get(Calendar.MINUTE);
            if (myMinute < 10) { System.out.print("0"); }
            System.out.print(myMinute);

            int mySecond = myMessage.putDateTime.get(Calendar.SECOND);
            if (mySecond < 10) { System.out.print("0"); }
            System.out.print(mySecond);

            int myMsec = myMessage.putDateTime.get(Calendar.MILLISECOND);
            myMsec = myMsec/10;
            if (myMsec < 10) { System.out.print("0"); }
            System.out.print(myMsec); 
            System.out.println("'");

            System.out.println("  ApplOriginData : '" 
                               + myMessage.applicationOriginData + "'");
            System.out.println();
            System.out.print("  GroupId : ");
            System.out.println("  MsgSeqNumber   : '" 
                               + myMessage.messageSequenceNumber + "'");
            System.out.println("  Offset         : '" + myMessage.offset + "'");
            System.out.println("  MsgFlags       : '" 
                               + myMessage.messageFlags + "'");
            System.out.println("  OriginalLength : '" 
                               + myMessage.originalLength + "'");
            System.out.println();

            System.out.println("****   Message     ****");
            System.out.println();
            System.out.println(" length - " + myMessage.getMessageLength() 
                             + " bytes\n");
            System.out.println();
            System.out.println();

         }

      } catch (MQException ex) {
         if (ex.reasonCode == MQException.MQRC_NO_MSG_AVAILABLE) {
            System.out.println(" No more messages");
         } else {
            System.out.println("MQ error: Completion code " +
                      ex.completionCode + " Reason code " + ex.reasonCode);
         }
      } catch (java.io.IOException ex) {
         System.out.println("An IO error occurred: " + ex);
      }

      try {
         browseQueue.close();
         System.out.println(" CLOSE of queue");
         qMgr.disconnect();
         System.out.println(" DISCONNECT from queue manager");
      } catch (MQException ex) {
         System.out.println("MQ error: Completion code " +
                      ex.completionCode + " Reason code " + ex.reasonCode);
      }

      System.out.println("**************************");
      System.out.println("MQController.java finished");

   } 

    public static void main( String[] args )     {
       MQController app = new MQController(args);

       if (     (myQmgr==null)  
             || (myQueue==null) ) {
          System.out.println("Usage:");
          System.out.println("java MQController -qm ... -q ...");
          System.out.println("where -qm is the queue manager name");
          System.out.println("      -q  is the queue name");
       } else {
          app.myBrowser();
       }
    }


}

截图 在此处输入图片说明

如果您有 Maven,为什么要使用 Eclipse Java Build Path?

相反,您应该将此依赖项添加到pom.xml

<!-- https://mvnrepository.com/artifact/com.ibm/com.ibm.mq -->
<dependency>
    <groupId>com.ibm</groupId>
    <artifactId>com.ibm.mq</artifactId>
    <version>5.3.07</version>
</dependency>

编辑

似乎这个依赖是指一个不存在的 JAR。 我建议您参考以下问题:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM