0

http:outboundを介してWebサービスを呼び出す必要があるシナリオがあります。このサービスはtext/xmlのみを受け入れます。

しかし、変換と変換の後、payload(xml)をbyte[]またはStringとして取得します。このペイロードが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-typeを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 タイプを設定する方法がわかりませんが<cxf:proxy-client>、以下に示すような SOAP リクエストを送信するために使用しようとしましたか。また、SoapActionweb サービスで呼び出す操作を指定する必要がある場合があります。

<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 に答える