您好我对Web服务一般不熟悉,但我正在尝试使用Apache Camel和Apache CXF重新创建一个旧的Axis2生成的Web服务。
在旧服务中,SOAP主体具有以下形状:
<chi:processAMessage soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<A xsi:type="xsd:string">A message</A>
<Code xsi:type="xsd:string">ABC</Code>
<Complete xsi:type="xsd:boolean">true</Complete>
</chi:processAMessage>
要使用CXF重新创建旧的Web服务,我遵循Apache CXF示例'camel-example-cxf-tomcat'。在此示例中,SOAP主体具有以下形状:
<ns1:reportIncident xmlns:ns1="http://incident.cxf.example.camel.apache.org/">
<arg0>
<details>blah blah</details>
<email>davsclaus@apache.org</email>
<familyName>Smith</familyName>
<givenName>Bob</givenName>
<incidentDate>2011-11-25</incidentDate>
<incidentId>123</incidentId>
<phone>123-456-7890</phone>
<summary>blah blah summary</summary>
</arg0>
</ns1:reportIncident>
据我了解CXF示例,节点<reportIncident>
被解释为服务的操作名称,<arg0>
被解释为服务消息的InputReportIncident bean。
如何使用CXF编写我的Web服务,以便它将SOAP主体的根元素解释为服务消息的bean本身,从而假设一个默认的操作名称(因为它不包含在SOAP主体中)?这是否可行,是否有任何示例可以跟随所有SOAP消息路由到公共服务操作名称?
提前致谢, PM。