我尝试做的第一步是改变wso2客户端(jms)和端点(http)之间的传输。客户端正在JMS有效负载中发送完整的soap信封。 我可以看到我的端点正在从服务器日志中调用(但我可以看到请求被拒绝)。 果然,我可以从代理日志中看到WSO2正在从客户端围绕soap有效负载添加额外的SOAP信封包装。
我的理解是,通过将端点的format属性设置为"保持原样",这应该是可纠正的。然而,这并没有什么不同。我怀疑这是一个简单的端点或代理配置修复,而不是需要一些xsl中介?任何guidnace感激地收到:
我的代码:
端点:
<endpoint xmlns="http://ws.apache.org/ns/synapse">
<address uri="http://d26li228.au.alcatel-lucent.com:44006/ilws/InstantLinkSOA">
<suspendOnFailure>
<progressionFactor>1.0</progressionFactor>
</suspendOnFailure>
<markForSuspension>
<retriesBeforeSuspension>0</retriesBeforeSuspension>
<retryDelay>0</retryDelay>
</markForSuspension>
</address>
</endpoint>
代理:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="McProxy3"
transports="McJMS"
statistics="disable"
trace="enable"
startOnLoad="true">
<target>
<inSequence>
<log level="full"/>
<property name="OUT_ONLY" value="true"/>
<send>
<endpoint key="conf:/ilepr"/>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
</target>
<parameter name="transport.jms.Destination">McQueue</parameter>
<description/>
</proxy>
答案 0 :(得分:0)
设置从JMS接收的消息的内容类型:如果已经有SOAP信封,则为text / xml:
<parameter name="transport.jms.ContentType">
<rules xmlns="">
<jmsProperty>contentType</jmsProperty>
<default>text/xml</default>
</rules>
</parameter>
如果您通过终端呼叫的服务等待soap11或soap12,您可以在端点定义中设置此格式(不要让“保持原样”)
在通过终端发送消息之前,你已经在inSequence中将OUT_ONLY定义为true:ESB不会实现任何回调,也不会收到任何响应(outSequence永远不会被执行)