0

我有一个场景,我需要通过 http:outbound 调用 Web 服务。该服务仅接受文本/xml。

但是在我的转换和转换之后,我得到了我的有效载荷(xml)作为字节 [] 或字符串。当此有效负载通过 http:outbound 向服务传递请求时,它会返回错误提示

Exception stack is:
1. Message contained MIME type "application/atom+xml" when "text/xml" was expected.     
Message payload is of type: byte[] (org.mule.api.MessagingException)

下面给出的是我的流程的一部分。

<mule-xml:xslt-transformer
        maxIdleTransformers="2" maxActiveTransformers="5"
        xsl-file="C:\EWS\MyProject\src\main\resources\xslt\XML_Repeater.xsl">
</mule-xml:xslt-transformer>

 <!-- <byte-array-to-string-transformer></byte-array-to-string-transformer>  -->

 <http:outbound-endpoint exchange-pattern="request-response" mimeType="text/xml"  
        address="http://sampleproj:9080/myservice/servlet/rpcrouter" />

如何将预期的 mime 类型传递给 http:outbound?

4

2 回答 2

2

添加:

<set-property propertyName="Content-Type" value="text/xml" />

就在http:outbound-endpoint.

于 2013-01-16T17:22:29.320 回答
0

我不确定如何设置 mime-types,但您是否尝试过使用<cxf:proxy-client>如下所示的方式发送肥皂请求。此外,您可能需要指定SoapAction在 web-service 上调用哪个操作

<mule-xml:xslt-transformer
    maxIdleTransformers="2" maxActiveTransformers="5"
    xsl-file="C:\EWS\MyProject\src\main\resources\xslt\XML_Repeater.xsl">
</mule-xml:xslt-transformer>
<set-property propertyName="SOAPAction" value="http://operationToCall" />
<cxf:proxy-client payload="body" enableMuleSoapHeaders="false">
   <cxf:outInterceptors>
     <spring:bean class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
   </cxf:outInterceptors>
</cxf:proxy-client>
<http:outbound-endpoint exchange-pattern="request-response" mimeType="text/xml"  
    address="http://sampleproj:9080/myservice/servlet/rpcrouter" />
于 2013-01-16T16:43:08.303 回答