1

http endpoint次のように定義された要求応答があります。

<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>どうすれば要素を取り除くことができますか?

4

2 に答える 2

3

追加:

enableMuleSoapHeaders="false"

あなたのcxf:proxy-service。また、グローバル CXF 構成要素も追加します。

<cxf:configuration enableMuleSoapHeaders="false"/>
于 2013-03-15T19:34:41.233 に答える
0

cxf:outInterceptors次のように Java クラスを使用して Mule ヘッダーを削除する別の方法があります。

<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:outInterceptorsJavaクラスは、応答からのMuleヘッダーであり、正常に機能しています

于 2015-07-04T05:43:14.460 に答える