Mule ESB和“multipart / form-data”

时间:2013-02-07 13:07:48

标签: mule esb multipartform-data

我有一个可以上传文件的工作网络服务。我想把Mule 3放在它前面,但我没有成功地让它传递MIME类型为“multipart / form-data”的有效负载。

尝试这样做会产生400错误:“客户端发送的请求在语法上是不正确的(错误请求)。”

以下流程(不能实现我的目的,但作为测试)工作正常,传递我发布的任何文本。

<flow name="Flow1" doc:name="Flow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="test/rule_file" mimeType="text/plain" doc:name="HTTP"/>
<http:outbound-endpoint exchange-pattern="request-response" host="localhost" port="8080" path="test/rule_file" mimeType="text/plain" doc:name="HTTP"/>
</flow>

但是,当我从“text / plain”切换到“multipart / form-data”时,会产生上面列出的错误。

<flow name="Flow1" doc:name="Flow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="test/rule_file" mimeType="multipart/form-data" doc:name="HTTP"/>
<http:outbound-endpoint exchange-pattern="request-response" host="localhost" port="8080" path="test/rule_file" mimeType="multipart/form-data" doc:name="HTTP"/>
</flow>

有人可以指出我的工作原理吗?

1 个答案:

答案 0 :(得分:3)

您似乎正在尝试构建HTTP代理:要使其工作,您必须在流的请求和响应阶段复制属性,并传播可能已在入站HTTP端点上使用的路径扩展

这是可行的,但最好使用现成的模式:

<pattern:http-proxy name="patternProxy"
    inboundAddress="http://localhost:8081/test/rule_file"
    outboundAddress="http://localhost:8080/test/rule_file" />