JMS не работает в Wso2Esb 4.7.0
Я работаю с wso2esb 4.7.0 и ActiveMQ5.8.0 всякий раз, когда я работаю с wso2esb4.6.0 и ActiveMQ5.5.1, все работает нормально, я публикую свою конфигурацию ниже любой справки для этого хранилища сообщений
<messageStore xmlns="http://ws.apache.org/ns/synapse"
class="org.wso2.carbon.message.store.persistence.jms.JMSMessageStore"
name="JMSQueue">
<parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
<parameter name="store.jms.cache.connection">false</parameter>
<parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
<parameter name="store.jms.JMSSpecVersion">1.1</parameter>
<parameter name="store.jms.destination">JMS_Reading_Queue</parameter>
</messageStore>
обработчик сообщений
<messageProcessor xmlns="http://ws.apache.org/ns/synapse"
class="org.apache.synapse.message.processors.forward.ScheduledMessageForwardingProcessor"
name="faisal"
messageStore="JMSQueue">
<parameter name="max.delivery.attempts">4</parameter>
<parameter name="interval">1000</parameter>
</messageProcessor
и прокси так
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="Jms"
transports="https http jms"
startOnLoad="true"
trace="disable">
<description/>
<target>
<inSequence>
<property name="messageType" value="application/json" scope="axis2"/>
<log level="full"/>
<store messageStore="JMSQueue"/>
<property name="target.endpoint"
value="JmsEndpoint"
scope="default"
type="STRING"/>
</inSequence>
<outSequence/>
</target>
</proxy>
и я определил свою конечную точку в конечных точках
<endpoint xmlns="http://ws.apache.org/ns/synapse" name="JmsEndpoint">
<address uri="http://192.168.1.122:8282/services/ReadingsMobile"
format="soap11"/>
</endpoint>
теперь я не получаю ошибок конечной точки цели той же конфигурации, работающей в wso2esb4.6.0, но не работающей в wso2esb4.7.0 и выдающей ошибки, подобные этой
[2013-08-21 16:48:32,049] WARN - ForwardingHandler Property target.endpoint not found in the message context. Removing the message.
[2013-08-21 16:49:32,093] WARN - SourceHandler Connection time out after request is read: http-incoming-13
2 ответа
Попробуйте выполнить следующие изменения в конфигурации прокси, чтобы избавиться от предупреждений;
a) Замените
б) Переместите запись тега "store" после свойства, в котором вы устанавливаете "target.endpoint".
Эти изменения, кажется, добиваются цели в моей среде. Проверьте, исправляет ли это и вашу проблему.
Надеюсь это поможет.
По существу, полученная вами ошибка говорит о том, что обработчик сообщений не может найти свойство target.endpoint из сохраненного контекста сообщения.
Причина этого в том, что вы сохраняете сообщение перед установкой этого свойства.
Вы должны установить свойство 'target.endpoint' перед посредником хранилища в потоке.
Конфигурация прокси должна выглядеть следующим образом.
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="Jms"
transports="https http jms"
startOnLoad="true"
trace="disable">
<description/>
<target>
<inSequence>
<property name="messageType" value="application/json" scope="axis2"/>
<log level="full"/>
<property name="target.endpoint"
value="JmsEndpoint"
scope="default"
type="STRING"/>
<store messageStore="JMSQueue"/>
</inSequence>
<outSequence/>
</target>
</proxy>