2017-09-11 1 views
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 

편집

enter image description here

을 추가 한 다음 추가 프로젝트에 종속물로 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 

왜 포장 후에 실패합니까?

답변

0

2) 내가 필요한 MQ 라이브러리의 전부가 아닙니다 모든 라이브러리

을 추가했다.

  • com.ibm.mq.commonservices.jar
  • com.ibm.mq.headers.jar
  • com.ibm.mq.jar
  • 닷컴 : 다음은 필요한 MQ의 JAR 파일입니다. ibm.mq.jmqi.jar
  • com.ibm.mq.pcf.jar
  • com.ibm.mqjms.jar
  • connector.jar
  • jms.jar
  • jndi.jar
  • 당신이 MQ V8 클라이언트를 사용하여 단순히라는 MQ의 JAR 파일을 사용하지 않는 이유는

: com.ibm.mq.allclient.jar

+0

MQ V8 클라이언트가 권리를 설치해야합니다을 ? 문제는 mq없이 다른 서버에 메시지를 보내려면 mq없이 서버에서 응용 프로그램을 실행해야합니다. 나는 첫 번째 것에 아무것도 설치할 필요가 없다. 나는 모든 항아리에 대한 의존성을 추가하려고 노력할 것이다. – Evgenii

+0

당신이 옳았습니다. 모든 항아리를 추가해야했습니다. 패키징 전에 왜 그 항아리가 없는지 왜 아직도 이해가 안됩니다. 내가 가지고있는 모든 라이브러리를 이미지에 추가했습니다. 아직 라이브러리가 누락되어 새로운 오류가 발생했을 수 있습니까? – Evgenii

+0

@Evgenii 단지 Google MQ v8 재배포 가능 클라이언트입니다.이 파일은 jar 파일을 자동으로 압축하는 것으로, jar 파일을 추출하는 데 관리 권한이 필요하지 않습니다. – JoshMc

관련 문제