2016-09-09 10 views
0

このエラーに関してStack overflowに関する質問が2つありましたが、それでも解決できないので、自分自身の疑問を提起すると思いました。私はいくつかのメッセージングおよびキュー仕事をするために春とSpringのJMSTemplateを使用していJMS JMSS0002(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) 

今I私のロジックをどれだけ変更しても、JMSTemplateで利用可能なメソッドを呼び出そうとすると、この例外が発生するため、これは私のコードとは関係ありません。いくつかの研究(他のスタックオーバーフローの答えに基づいて)をした後、私はそれが私のクラスパスがセットアップされている方法と関係があると仮定します。ここではこれらの質問へのリンクです:

OneTwo

はこれに加えて、ここで私は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;

私はしかし、これを試してみましたし、それはまだのようです私を失敗させる。ここで私は私が実行自分のアプリケーションのための私の.batファイルに追加したものです:

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 ....(そこの端に多くのだが、私はそれが関連だと感じていない)

私はこれを正しく追加することではないだろうか?

おかげ

+0

クラスパスにcom.ibm.mq.commonservices.jarがありません。このjarを追加してみてください。 – Shashi

答えて

1

ここでの問題、あなたはその結果として、コピーおよびIBM MQ jarファイルの名前を変更するとされているということですが、実行時にJavaクラスパス上のフルセットを持っていません。これは、あなたが経験しているような、あらゆる種類の問題や予想外の例外につながる可能性があります。

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ファイルを再パッケージ化する際に問題が発生しました。このファイルには、これらのプロパティの他の値を含む 'compinfo.properties'ファイルも含まれています。あなたはどこで情報を入手しましたか? – scorciatoia