构建 jar 后无法向 ibm mq 发送消息
Cannot sent message to ibm mq after building the jar
1) 当我 运行 想法中的应用程序运行时。
public class Sender {
private MQQueueConnectionFactory cf = new MQQueueConnectionFactory();
private MQQueueConnection connection = null;
private MQQueueSession session = null;
private Queue queue = null;
private MQQueueSender sender = null;
private TextMessage message = null;
public void send(String msg) throws JMSException {
cf.setHostName("host");
cf.setPort(port);
cf.setQueueManager("manager");
cf.setChannel("channel");
cf.setTransportType(WMQConstants.WMQ_CM_CLIENT);
connection = (MQQueueConnection) cf.createQueueConnection("user", "pswrd");
session = (MQQueueSession) connection.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
queue = session.createQueue("queue");
sender = (MQQueueSender)session.createSender(queue);
message = session.createTextMessage(msg);
sender.send(message);
session.commit();
connection.close();
}
}
2)我添加了所有库
com.ibm.mqjms-7.5.0.4.jar
jms-1.1.jar
ibm.mq.jmqi-7.5.0.4.jar
com.ibm.mq.headers-7.5.0.4.jar
com.ibm.disthub2-7.5.0.4.jar
编辑
像这样到我本地的 maven 仓库
mvn install:install-file -Dfile=jms-1.1.jar -DgroupId=com.ibm.jms -DartifactId=evkuzmin-jms -Dversion=1.0 -Dpackaging=jar
然后将它们作为依赖项添加到项目中。
<dependency>
<groupId>com.ibm.jms</groupId>
<artifactId>evkuzmin-jms</artifactId>
<version>1.0</version>
</dependency>
3)我使用 maven-assembly-plugin 构建了一个具有依赖项的 jar。
这是我得到的错误。
Exception in thread "main" com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ0018: null
Caused by: com.ibm.mq.MQException: JMSCMQ0001: JMSCMQ0001, 2, MQCC_FAILED, 2195, MQRC_UNEXPECTED_ERROR
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2195;AMQ9204: Connection to host 'host(port)' rejected. [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2195],3=host(port),5=WMQThreadPool.enqueue]
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2195
Caused by: com.ibm.msg.client.commonservices.CSIException: JMSCS0002
为什么打包后会失败?
2)I added all libraries
这不是所有必需的 MQ 库。这些是必需的 MQ JAR 文件:
- com.ibm.mq.commonservices.jar
- com.ibm.mq.headers.jar
- com.ibm.mq.jar
- com.ibm.mq.jmqi.jar
- com.ibm.mq.pcf.jar
- com.ibm.mqjms.jar
- connector.jar
- jms.jar
- jndi.jar
为什么不使用 MQ V8 客户端,然后简单地使用名为:com.ibm.mq.allclient.jar
的 MQ JAR 文件
1) 当我 运行 想法中的应用程序运行时。
public class Sender {
private MQQueueConnectionFactory cf = new MQQueueConnectionFactory();
private MQQueueConnection connection = null;
private MQQueueSession session = null;
private Queue queue = null;
private MQQueueSender sender = null;
private TextMessage message = null;
public void send(String msg) throws JMSException {
cf.setHostName("host");
cf.setPort(port);
cf.setQueueManager("manager");
cf.setChannel("channel");
cf.setTransportType(WMQConstants.WMQ_CM_CLIENT);
connection = (MQQueueConnection) cf.createQueueConnection("user", "pswrd");
session = (MQQueueSession) connection.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
queue = session.createQueue("queue");
sender = (MQQueueSender)session.createSender(queue);
message = session.createTextMessage(msg);
sender.send(message);
session.commit();
connection.close();
}
}
2)我添加了所有库
com.ibm.mqjms-7.5.0.4.jar
jms-1.1.jar
ibm.mq.jmqi-7.5.0.4.jar
com.ibm.mq.headers-7.5.0.4.jar
com.ibm.disthub2-7.5.0.4.jar
编辑
像这样到我本地的 maven 仓库
mvn install:install-file -Dfile=jms-1.1.jar -DgroupId=com.ibm.jms -DartifactId=evkuzmin-jms -Dversion=1.0 -Dpackaging=jar
然后将它们作为依赖项添加到项目中。
<dependency>
<groupId>com.ibm.jms</groupId>
<artifactId>evkuzmin-jms</artifactId>
<version>1.0</version>
</dependency>
3)我使用 maven-assembly-plugin 构建了一个具有依赖项的 jar。
这是我得到的错误。
Exception in thread "main" com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ0018: null
Caused by: com.ibm.mq.MQException: JMSCMQ0001: JMSCMQ0001, 2, MQCC_FAILED, 2195, MQRC_UNEXPECTED_ERROR
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2195;AMQ9204: Connection to host 'host(port)' rejected. [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2195],3=host(port),5=WMQThreadPool.enqueue]
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2195
Caused by: com.ibm.msg.client.commonservices.CSIException: JMSCS0002
为什么打包后会失败?
2)I added all libraries
这不是所有必需的 MQ 库。这些是必需的 MQ JAR 文件:
- com.ibm.mq.commonservices.jar
- com.ibm.mq.headers.jar
- com.ibm.mq.jar
- com.ibm.mq.jmqi.jar
- com.ibm.mq.pcf.jar
- com.ibm.mqjms.jar
- connector.jar
- jms.jar
- jndi.jar
为什么不使用 MQ V8 客户端,然后简单地使用名为:com.ibm.mq.allclient.jar
的 MQ JAR 文件