0
1) 아이디어에서 응용 프로그램을 실행할 때 작동합니다.jar를 빌드 한 후 ibm mq에 메시지를 보낼 수 없습니다.
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) 나는이
mvn install:install-file -Dfile=jms-1.1.jar -DgroupId=com.ibm.jms -DartifactId=evkuzmin-jms -Dversion=1.0 -Dpackaging=jar
처럼 내 지역 받는다는의 repo에 모든 라이브러리
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
편집
을 추가 한 다음 추가 프로젝트에 종속물로 m.
<dependency>
<groupId>com.ibm.jms</groupId>
<artifactId>evkuzmin-jms</artifactId>
<version>1.0</version>
</dependency>
3) 종속 관계가있는 jar를 maven-assembly-plugin으로 빌드합니다.
이것은 내가 얻은 오류입니다.
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
왜 포장 후에 실패합니까?
MQ V8 클라이언트가 권리를 설치해야합니다을 ? 문제는 mq없이 다른 서버에 메시지를 보내려면 mq없이 서버에서 응용 프로그램을 실행해야합니다. 나는 첫 번째 것에 아무것도 설치할 필요가 없다. 나는 모든 항아리에 대한 의존성을 추가하려고 노력할 것이다. – Evgenii
당신이 옳았습니다. 모든 항아리를 추가해야했습니다. 패키징 전에 왜 그 항아리가 없는지 왜 아직도 이해가 안됩니다. 내가 가지고있는 모든 라이브러리를 이미지에 추가했습니다. 아직 라이브러리가 누락되어 새로운 오류가 발생했을 수 있습니까? – Evgenii
@Evgenii 단지 Google MQ v8 재배포 가능 클라이언트입니다.이 파일은 jar 파일을 자동으로 압축하는 것으로, jar 파일을 추출하는 데 관리 권한이 필요하지 않습니다. – JoshMc