关于如何在单个CXF网关端点中处理Soap 1.1和Soap1.2有效负载的一般问题(使用cxf dataformat是MESSAGE)
我通过WS端点公开我的camel路由,我的cxf端点定义如下所示:
<camel-cxf:cxfEndpoint id="esb-adapter-ws-gateway"
wsdlURL="adapters/esb/wsdls/product-v1.wsdl"
address="/esb/adapter/v1"
serviceName="ns:EsbService"
endpointName="ns:EsbServiceSOAP12Port"
xmlns:cfc="http://www.test.com/services/esb/adapter/v1">
<camel-cxf:properties>
<entry key="dataFormat" value="MESSAGE" />
</camel-cxf:properties>
</camel-cxf:cxfEndpoint>
这里我使用MESSAGE dataformat,因为它提供了更多的控制和对故障有效载荷的可见性。而且我也喜欢它:)
问题是,我想在此端点处理Soap 1.1和Soap 1.2有效负载。
我如何在路线级别处理此问题?
我正在检查传入的soap命名空间并通过camel标头设置标志。根据标题,我为肥皂响应&amp;设置soap名称空间。肥皂缺陷。
解决方案正常,但我担心的是endpointName =&#34; ns:EsbServiceSOAP12Port&#34;在cxf端点声明中提到。
有没有更好的方法来处理这种情况?
注意:我正在使用XSLT来形成响应和错误消息。例如:如果传入的有效载荷是Soap1.1,那么我有一个单独的Soap 1.1故障xslt模板来生成故障有效载荷。