Как и где я могу использовать хранилище сообщений и процессор сообщений в ESB?

Я использовал два экземпляра WSO2 ESB 4.6 с номерами портов 9443 (esb1) и 9446 (esb2), а также использовал Message Broker 2.0.1 с портом 9444. Я использую этот URL-адрес для выполнения своей задачи: http://wso2.org/library/articles/2013/03/configuring-wso2-esb-wso2-message-broker. Я сделал пример очереди для отправки в очередь, используя приведенную выше ссылку. И все работает нормально. Но проблема в том, что когда я отправляю любое сообщение на esb1, оно отражается на esb2, так как esb2 работает как мой подписчик. Я хочу, чтобы в хранилище сообщений хранилось это сообщение, переданное от esb1, и на основе какого-либо события оно должно предоставлять esb2 сообщения, отправленные esb1. Заранее спасибо. Когда я активирую свой массажный процессор, я постоянно получаю эту ошибку:

[2013-04-08 17:58:56,658] ERROR - JobRunShell Job synapse.message.processor.quartz.Processor2-forward job threw an unhan
dled Exception:
java.lang.NullPointerException
        at org.wso2.carbon.message.store.persistence.jms.util.JMSUtil.createConnection(JMSUtil.java:46)
        at org.wso2.carbon.message.store.persistence.jms.JMSMessageStore.createConnection(JMSMessageStore.java:577)
        at org.wso2.carbon.message.store.persistence.jms.JMSMessageStore.getReadConnection(JMSMessageStore.java:517)
        at org.wso2.carbon.message.store.persistence.jms.JMSMessageStore.peek(JMSMessageStore.java:239)
        at org.apache.synapse.message.processors.forward.ForwardingJob.execute(ForwardingJob.java:88)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
[2013-04-08 17:58:56,669] ERROR - ErrorLogger Job (synapse.message.processor.quartz.Processor2-forward job threw an exce
ption.
org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.lang.NullPointerException]
        at org.quartz.core.JobRunShell.run(JobRunShell.java:224)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
Caused by: java.lang.NullPointerException
        at org.wso2.carbon.message.store.persistence.jms.util.JMSUtil.createConnection(JMSUtil.java:46)
        at org.wso2.carbon.message.store.persistence.jms.JMSMessageStore.createConnection(JMSMessageStore.java:577)
        at org.wso2.carbon.message.store.persistence.jms.JMSMessageStore.getReadConnection(JMSMessageStore.java:517)
        at org.wso2.carbon.message.store.persistence.jms.JMSMessageStore.peek(JMSMessageStore.java:239)
        at org.apache.synapse.message.processors.forward.ForwardingJob.execute(ForwardingJob.java:88)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
        ... 1 more

person Roy    schedule 08.04.2013    source источник


Ответы (1)


Похоже, в вашей конфигурации jndi.properties возникла проблема. Убедитесь, что конфигурация фабрики соединений действительна, что, по-видимому, и вызвало указанную проблему. В реализации хранилища сообщений значение параметра "фабрика соединений" по умолчанию равно "QueueConnectionFactory". Если вы пытаетесь указать другую фабрику соединений с другим именем, удаляя фабрику по умолчанию (QueueConnectionFactory) из конфигурации, убедитесь, что вы указали правильное имя фабрики соединений в соответствующем элементе конфигурации хранилища сообщений.

Надеюсь это поможет!

person Prabath Abeysekara    schedule 20.05.2013