2016-09-09 3 views
0

)이 오류와 관련하여 Stack overflow에 관한 한 두 가지 질문을 보았지만 아직 해결할 수 없으므로 내 자신의 질문을 제기 할 것이라고 생각했습니다. 좀 메시징 및 큐 작업을 할 봄과 봄의 JmsTemplate를 사용하고JMS JMSCS0002 (Spring JMS 및 IBM Websphere MQ

:

여기 내 문제입니다. 대기열에서 읽으려고합니다. (나는 마지막 섹션을 포함 시켰습니다) 내 논리가 내 코드에 맞다면 나는 100 % 긍정적 인 아니지만, 언제 내가이 예외로 인사를하고 내 응용 프로그램을 실행하려고 :

Caused by: com.ibm.msg.client.commonservices.CSIException: JMSCS0002 
    at com.ibm.msg.client.commonservices.workqueue.PIWorkQueueManager.enqueueItem(PIWorkQueueManager.java:67) 
    at com.ibm.msg.client.commonservices.workqueue.WorkQueueManager.enqueue(WorkQueueManager.java:225) 
    at com.ibm.msg.client.commonservices.workqueue.WorkQueueManager.enqueue(WorkQueueManager.java:194) 
    at com.ibm.msg.client.wmq.common.internal.WMQThreadPool.enqueue(WMQThreadPool.java:91) 

지금 꽤 많은 것은 내 코드와 아무 상관이 없다. 왜냐하면 아무리 많은 로직을 변경해도 JMSTemplate에서 사용할 수있는 메서드를 호출하면이 예외가 발생하기 때문이다. (다른 스택 오버 플로우 응답을 기반으로 한) 약간의 연구를 한 후에는 클래스 경로가 설정되는 방식과 관련이 있다고 가정합니다.

One이 외에도 Two

, 여기에 내가 IBM의 site에서 발견 된 일부 정보입니다 : 여기에 그 질문에 대한 링크입니다 내가 그러나이 시도

To compile and run WebSphere MQ classes for JMS applications, use the CLASSPATH setting for your platform as shown in Table 1.

CLASSPATH=MQ_INSTALLATION_PATH\java\lib\com.ibm.mqjms.jar; MQ_INSTALLATION_PATH\tools\jms;

이와 아직에 보인다 나를 실망 시키십시오.

c:\java\jre6\bin\javaw -cp "C:\ussco\wmsflgint\mqs\mqjms-7.5.0.0.jar; C:\ussco\wmsflgint\mqs\mq-7.5.0.0.jar; C:\ussco\wmsflgint\mqs\headers-1.4.2.jar; C:\ussco\wmsflgint\mqs\jmqi-7.5.0.0.jar;" -Xmx256M .... (끝 부분에 더있다하지만 난 그게 관련이 생각하지 않습니다)

내가 올바르게 추가하지 오전 : 여기에 나는 실행 내 응용 프로그램에 대한 내 .bat 파일에 무엇을 추가 한거야?

감사

+0

클래스 경로에 com.ibm.mq.commonservices.jar가 누락되었다고 생각합니다. 이 항아리를 추가하십시오. – Shashi

답변

1

여기에서의 문제는 결과적으로 복사 및 IBM MQ jar 파일의 이름을 변경하고 한 것입니다은 런타임에 자바 클래스 패스에 전체가 설정되어 있지 않습니다. 이로 인해 발생한 모든 문제 및 예기치 않은 예외가 발생할 수 있습니다.

MQ jar 파일을 복사하고 이름을 바꾸거나 응용 프로그램에 번들하는 것은 IBM Support에서 허용하지 않으며 MQ 규정을 무효화합니다. (규칙은 V8 및 V9 재배포 가능 클라이언트 및 모든 클라이언트 용 앱에 번들로 제공되는 경우에 따라 달라 지지만 여기에서는 사용하지 않음).

시스템에 MQ 클라이언트를 올바르게 설치 한 후 (지식 기반 센터에서 이미 찾은 지침을 사용하여 클래스 용 com.ibm.mq.jar 파일 참조) Java 응용 프로그램의 경우 또는 Java 클래스 경로의 JMS 응용 프로그램 용 클래스에 대한 com.ibm.mqjms.jar의 경우, 문제점이 해결됩니다.

+0

자, 클래스 경로를 다음과 같이 수정했습니다 :'-cp "C : ₩ Program Files (x86) ₩ IBM ₩ WebSphere MQ ₩ java ₩ lib ₩ com.ibm.mqjms.jar" "C : \ Program Files (x86) \ IBM \ WebSphere MQ \ java \ lib \ com.ibm.mq.commonservices.jar "; "C : ₩ Program Files (x86) ₩ IBM ₩ WebSphere MQ ₩ tools ₩ jms"; '이제 오류가 발생합니다 :'C : \ Program Files (x86) \ IBM \ WebSphere MQ \ java \ lib \ com.ibm.mq.commonservices.jar' –

+0

안녕하세요. 항목 사이에 공백이 있기 때문에 클래스 경로를 올바르게 구성하지 않았습니다. 참고로 http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html에 관계없이 클래스 경로에 com.ibm.mq.commonservices.jar 파일을 명시 적으로 추가 한 이유는 무엇입니까? 이것이 필요하지 않고 IBM MQ KC 페이지에서 언급되지 않은 경우? –

+0

C : \ java \ jre6 \ bin \ javaw -cp "C : ₩ Program Files (x86) ₩ IBM ₩ WebSphere MQ ₩ java ₩ lib ₩ com.ibm.mqjms.jar"; '을 사용하여 IBM MQ 페이지에 나열되어 있지만 여전히이 예외가 발생합니다. IBM –

2

대기열 수신기에서 동일한 문제가 발생했습니다. 해결책은 compinfo.properties 파일을 Spring 프로젝트의 src/main/resources/META-INF 디렉토리 아래에 배치하는 것이 었습니다.

CompList: comp1 
comp1_CompClass: com.ibm.msg.client.commonservices.j2se.J2SEComponent 

아니면 단지 com.ibm.msg.client.commonservices.j2se.jar에서 속성 (comp1_CompClass) 값을 오른쪽으로 변경할 수 있습니다 :이 파일은 두 가지 속성에 대한 값을 설정해야합니다. 저작권으로 인해 그것이 합법적 인 것 같지는 않지만 동일한 효과가 있습니다. 도움이되고 누군가를 위해 2 시간을 절약하기를 바랍니다.

+0

에 따라 다른 항아리가 필요하지 않으므로 공백이 없습니다! 7.1.0.7에서 7.5.0.4로 업그레이드하면서 rar 파일에서 jar 파일을 다시 패키징 할 때 문제가 발생했습니다. rar 파일에는 이러한 특성에 대한 다른 값을 갖는'compinfo.properties' 파일도 들어 있습니다. 정보를 어디에서 들었습니까? – scorciatoia