2013-03-15 97 views
1

发送骡头我有个请求 - 响应http endpoint定义如下:如何不SOAP请求和响应

<http:inbound-endpoint address="${mvi.service.address}" exchange-pattern="request-response"> 
    <cxf:proxy-service wsdlLocation="classpath:mvi.wsdl" namespace="http://pennmutual.com/services/mvi" service="MVIService" /> 
</http:inbound-endpoint> 

它发送回客户端的响应已经骡头所附象下面这样:

<soap:Header> 
    <mule:header xmlns:mule="http://www.muleumo.org/providers/soap/1.0"> 
    <mule:MULE_CORRELATION_ID>4784545a-4fad-44ac-171e-1bc150ccdcb2</mule:MULE_CORRELATION_ID> 
    <mule:MULE_CORRELATION_GROUP_SIZE>-1</mule:MULE_CORRELATION_GROUP_SIZE> 
    <mule:MULE_CORRELATION_SEQUENCE>-1</mule:MULE_CORRELATION_SEQUENCE> 
    </mule:header> 

我怎样才能摆脱<mule:header>元素?

回答

3

地址:

enableMuleSoapHeaders="false" 

cxf:proxy-service。并且还添加了全球CXF配置元素:

<cxf:configuration enableMuleSoapHeaders="false"/> 
+0

我使用SoapUI进行测试,仍然看到骡头接入元素 – 2013-03-15 19:42:28

+0

道歉我忘记了全局CXF配置元素。再试一次。 – 2013-03-15 20:03:33

+0

谢谢,这次工作。好奇全局CXF配置元素是如何工作的,它不被元素引用。 – 2013-03-16 00:53:13

0

有使用cxf:outInterceptors和Java类,如下所示删除骡头的另一种方式: -

<http:inbound-endpoint address="${mvi.service.address}" exchange-pattern="request-response"/> 
<cxf:proxy-service wsdlLocation="classpath:mvi.wsdl" namespace="http://pennmutual.com/services/mvi" service="MVIService" > 
<cxf:outInterceptors > 
    <spring:bean id="outfault" class="com.SOAPInterceptorOutboundHeaderRemover"/> 
</cxf:outInterceptors> 
</cxf:proxy-service> 

,并在你的SOAPInterceptorOutboundHeaderRemover Java类: -

public class SOAPInterceptorOutboundHeaderRemover extends AbstractSoapInterceptor { 

public SOAPInterceptorOutboundHeaderRemover() { 
super(Phase.PRE_PROTOCOL); 
} 

@Override 
public void handleMessage(SoapMessage arg0) throws Fault { 
List<Header> headerList = arg0.getHeaders(); 
Header muleHeader = null; 
boolean isMuleHeader = false; 
for (Header header : headerList) { 
ElementNSImpl element = (ElementNSImpl) header.getObject(); 
if ("mule:header".equals(element.getNodeName())) { 
isMuleHeader = true; 
muleHeader = header; 
} 
} 
if (isMuleHeader) { 
arg0.getHeaders().remove(muleHeader); 
} 

} 
} 

cxf:outInterceptors Java类从响应骡头和工作正常

相关问题