2016-09-09 3 views
0

Я видел один или два вопроса о переполнении стека относительно этой ошибки, но я все еще не могу ее решить, поэтому я решил задать свой вопрос.JMSCS0002 от Spring JMS и IBM Websphere MQ

Вот мой вопрос:

Я использую весной и весной в JMSTemplate сделать некоторые обмена сообщениями и очереди работ. Я пытаюсь читать из очереди. Я не 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

В дополнение к этому, вот некоторая информация я нашел на site компании IBM:

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 в вашем классе. Попробуйте добавить эту банку. – Shashi

ответ

1

Проблема здесь заключается в том, что вы копировали и переименование IBM MQ банку файлы и, как следствие, не имеют полного набора на пути класса Java во время выполнения. Это может привести ко всем видам проблем и неожиданным исключениям, таким как тот, который вы испытываете.

Обратите внимание, что копирование файлов MQ jar, их переименование и/или объединение их в приложения не разрешено службой поддержки IBM и недействительными условиями и условиями MQ. (Правила - это тонкость, отличная для добавления в приложения для V8 и V9 распространяемого клиента и allclient, но вы не используете это здесь).

Если вы выполняете надлежащую установку клиента MQ в свою систему (что вам нужно сделать), а затем используйте инструкции, которые вы уже нашли в Центре знаний, чтобы ссылаться на файл com.ibm.mq.jar для классов для приложений Java или com.ibm.mqjms.jar для классов для JMS-приложений в пути Java-класса, ваша проблема будет решена.

+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 Pages, но я все еще получаю это исключение. Нет пробелов, потому что не нужны другие банки в соответствии с IBM. –

2

Я только что столкнулся с той же проблемой, что и слушатели очереди. Решение состояло в том, чтобы поместить файл compinfo.properties в каталог src/main/resources/META-INF проекта Spring. Файл должен задать значения для двух свойств:

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

Или вы можете изменить свойство (comp1_CompClass) значение прямо в банке com.ibm.msg.client.commonservices.j2se.jar. Он имеет тот же эффект, хотя я сомневаюсь, что это законно из-за авторских прав. Надеюсь, что было бы полезно и сэкономить пару часов для кого-то.

+0

Работал для меня! Возникла проблема при обновлении с 7.1.0.7 до 7.5.0.4 и переупаковке баночек из файла rar, который также содержит файл 'compinfo.properties' с другими значениями для этих свойств. Откуда у вас информация? – scorciatoia

Смежные вопросы