Axis2 Web服务转换为Apache CXF Web服务

时间:2014-05-01 10:17:28

标签: soap cxf apache-camel axis2

您好我对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。

0 个答案:

没有答案