Mule ESB如何将POST有效负载转储到文件中

时间:2013-10-28 19:56:20

标签: soap mule esb

我开始使用Mule ESB。我正在尝试构建一个SOAP代理服务,它接收SOAP请求并将其重定向到SOAP服务。

像这样的简单例子很好用 -

<flow name="http_redirectFlow1" doc:name="http_redirectFlow1">
    <http:inbound-endpoint exchange-pattern="request-response" address="http://localhost:8092/HelloProxyService" doc:name="HTTP"/>
    <http:outbound-endpoint exchange-pattern="request-response" method="POST" address="http://localhost:8080/soapsvc/hello" contentType="text/xml" doc:name="HTTP"/>
</flow>

现在我想将请求的内容转储到文件中。这是最好的方法吗?我试图通过在入站和出站端点之间插入此段来使用文件连接器 -

    <file:outbound-endpoint path="c:/temp" outputPattern="temp.txt" responseTimeout="10000" doc:name="File"/>

但这似乎不起作用。我得到一个例外,说“必须在写入实体之前设置内容”。不确定它是什么,但我可能完全错误的做法。请帮帮....

3 个答案:

答案 0 :(得分:1)

自己想出来。我不得不使用dom-to-xml转换器将DOM转换为XML。 XML转储按如下方式完成: -

<mulexml:dom-to-xml-transformer returnClass="java.lang.String"></mulexml:dom-to-xml-transformer>
<file:outbound-endpoint path="c:/temp" outputPattern="Dump_Rcvd.txt" responseTimeout="10000" doc:name="File" />

谢谢!

答案 1 :(得分:0)

或者,您可以在<object-to-string-transformer doc:name="Object to String"/>之前使用file:outbound-endpoint,它将使有效负载成为String格式,并且可以轻松地写入文件

答案 2 :(得分:0)

使用涉及Bytearray的文件连接器和变换器。