我正在使用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但m不在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
答案 0 :(得分:1)
尝试在代理配置中进行以下修改以消除警告;
a)替换&lt;目标&gt;与&lt; target endpoint =“JmsEndpoint”&gt;
b)在设置“target.endpoint”的属性后移动“store”标签条目。
这些变化似乎在我的环境中起作用。检查它是否也解决了你的问题。
希望这有帮助。
答案 1 :(得分:0)
基本上你得到的错误是消息处理器无法从存储的消息上下文中找到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>