我需要使用相同的SOAP请求,以便能够调用相同的实施方法,但它是由2个不同的服务端点暴露:阿帕奇CXF JMS - SOAP
- 端点A - 将是用于同步通过SOAP
- 端点B访问 - 将通过JMS
现在是什么我看到的是,这对JMS工作SOAP请求消息和SOAP Web服务端点是结构不同对于异步访问。
我想知道使用ApacheCXF是否可以使用相同的SOAP请求调用SOAP或JMS端点?
在我来说,我是能够调用两个端点,但使用的要求是不是每
下同是工作在非同步端点B,但不上同步端点工作SOAP消息的示例一..请注意,我通过执行JUnit测试中获得的异步消息,并截获ActiveMQ的队列中产生的消息:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:create xmlns:ns1="http://service.ws.example/">
<CustomPartyModel>
<ns2:customerModel
xmlns:ns2="http://party.beans.commons.example">
<ns2:person>
<ns2:budgetPlanNumber>131484</ns2:budgetPlanNumber>
<ns2:clientSituationCode
xmlns:ns3="http://www.w3.org/2001/XMLSchema-instance" ns3:nil="true" />
<ns2:employeeReduction>J</ns2:employeeReduction>
<ns2:employeeNumber></ns2:employeeNumber>
<ns2:packageNumber>5</ns2:packageNumber>
<ns2:planIndicator xmlns:ns3="http://www.w3.org/2001/XMLSchema-instance"
ns3:nil="true" />
<ns2:privateRelationNumber
xmlns:ns3="http://www.w3.org/2001/XMLSchema-instance" ns3:nil="true" />
</ns2:person>
</ns2:customerModel>
</CustomPartyModel>
</ns1:create>
</soap:Body>
这里是SOAP请求其上的同步点,但不是工作异步一个..从创建从WSDL的请求获得这个请求:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.ws.example/" xmlns:par="http://party.beans.commons.example">
<soapenv:Body>
<ser:CustomPartyModel>
<par:customerModel>
<par:person>
<par:budgetPlanNumber>131484</par:budgetPlanNumber>
<par:employeeReduction>J</par:employeeReduction>
<par:employeeNumber></par:employeeNumber>
<par:packageNumber>5</par:packageNumber>
<par:professionCodePartner></par:professionCodePartner>
<par:professionDescriptionPartner></par:professionDescriptionPartner>
</par:person>
</par:customerModel>
</ser:CustomPartyModel>
在这两种情况下,我使用宙斯盾数据绑定的,我也尝试JAXB很好,但没有成功futher。
鉴于其具有相同方法签名的相同方法,您会期望可以在异步和同步中使用相同的请求,但似乎并非如此。
任何人有类似的问题,或可能会对此有所了解?那现在用的是以下相关
注: CXF-API-2.2.2.jar, CXF常见的实用工具 - 2.2.2.jar, CXF-RT-绑定宙斯盾-2.2.2.jar , XMLSchema的1.4.5.jar, CXF-RT-传输-JMS-2.2.2.jar, 弹簧JMS-2.5.5.jar, 的acegi安全-1.0.7.jar
发现JMS端点正期待RPC样式请求,而SOAP同步端点预期分别默认情况下都是文档文字......将两者都更改为RPC,例如@SOAPBinding(style = Style.RPC,use = Use.LITERAL )...但我没有设法使JMS消息成为文档文字 – Javed 2013-02-19 02:13:10