WSO2 ESB消息转发处理器未发送到端点
我正在尝试从jms消息存储实现消息转发处理器。我遵循了标准示例。我从api成功地填充了JMS存储,但是当我激活消息处理器时,我得到了以下错误。看起来我想要转发消息的端点url的格式不正确,并且添加了我最初发布到的url的一部分,以便将对象放在JMS存储上。有效负载目前在api中是硬编码的WSO2 ESB消息转发处理器未发送到端点,wso2,wso2esb,wso2carbon,Wso2,Wso2esb,Wso2carbon,我正在尝试从jms消息存储实现消息转发处理器。我遵循了标准示例。我从api成功地填充了JMS存储,但是当我激活消息处理器时,我得到了以下错误。看起来我想要转发消息的端点url的格式不正确,并且添加了我最初发布到的url的一部分,以便将对象放在JMS存储上。有效负载目前在api中是硬编码的 ERROR - ForwardingService BlockingMessageSender of message processor [TestStockMessageProcessor] fail
ERROR - ForwardingService BlockingMessageSender of message processor
[TestStockMessageProcessor] failed to send message to the endpoint.
INFO - ForwardingService Pausing the service of the message processor
[TestStockMessageProcessor]
INFO - HTTPSender Unable to sendViaPost to
url[http://TestServer/Webservices.API/stock/stockReference/bookIn]
...Transport error : 404 Error: NOT Found
我使用谷歌REST客户端并发布到以下URL
"http://localhost:8280/dev_depot/stock/stockReference/bookIn"
我的api叫做dev_depot
下面是我的配置
我的API
<resource methods="POST" uri-template="/stock/stockReference/bookIn">
<inSequence>
<payloadFactory media-type="json">
<format> { "AreaId": 1, "StockStatusId": 1, "AbsStockNo": 1, "StockNo":
"TestJMSMS", "SKU": "7", "CatalogueNo": "300", "BadPackaging": false} </format>
<args></args>
</payloadFactory>
<property name="OUT_ONLY" value="true"></property>
<property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"></property>
<store messageStore="JMSMS"></store>
<log level="full"></log>
</inSequence>
<outSequence>
<log level="full"></log>
</outSequence>
</resource>
代理服务
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="MessageProcessorTest"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<payloadFactory media-type="json">
<format> { "AreaId": 1, "StockStatusId": 1, "AbsStockNo": 1, "StockNo":
"TestProxyJMSMS", "SKU": "7", "CatalogueNo": "300", "BadPackaging": false}
</format>
<args/>
</payloadFactory>
<property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
<property name="OUT_ONLY" value="true"/>
<property name="target.endpoint" value="TestEndpoint"/>
<log level="full"/>
<store messageStore="JMSMS"/>
</inSequence>
</target>
<description/>
</proxy>
这一次,端点URL似乎是正确的。我使用相同的消息处理器,但填充JMS消息存储的方式不同
如果有任何关于我做错了什么的提示,我们将不胜感激。在应用商店中介之前,请尝试在API中添加此属性:
<property name="REST_URL_POSTFIX" action="remove" scope="axis2"/>
您是否尝试将端点更改为testNot。我不会使用存储中介来填充消息存储。我确实将您建议的属性添加到了我的API中。我在有效负载工厂之前添加了它作为序列中的第一个条目,但仍然得到相同的错误。
INFO - HTTPSender Unable to send ViaPost to
url[http://TestServer/Webservices.API/stock] : No element was found to write:
java.lang.ArrayIndexOutOfBoundsException
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="MessageProcessorTest"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<payloadFactory media-type="json">
<format> { "AreaId": 1, "StockStatusId": 1, "AbsStockNo": 1, "StockNo":
"TestProxyJMSMS", "SKU": "7", "CatalogueNo": "300", "BadPackaging": false}
</format>
<args/>
</payloadFactory>
<property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
<property name="OUT_ONLY" value="true"/>
<property name="target.endpoint" value="TestEndpoint"/>
<log level="full"/>
<store messageStore="JMSMS"/>
</inSequence>
</target>
<description/>
</proxy>
<property name="REST_URL_POSTFIX" action="remove" scope="axis2"/>