我正在尝试将包含文件和两个输入的表单发送到 Mule 入站端点。我有一个自定义处理器和一个定义如下的流程:
<custom-processor class="informa.app.classifier.transformers.MyfileUploadProcessor" name="fileuploadprocessor"></custom-processor>
<flow name="httpTest">
<http:inbound-endpoint
address="http://tango.privada.informa:11002/services/fileupload"></http:inbound-endpoint>
<processor ref="fileuploadprocessor"/>
</flow>
在 MyfileUploadProcessor 类中:
公共类 MyfileUploadProcessor 实现 MessageProcessor {
@Override
public MuleEvent process(MuleEvent event) throws MuleException {
// TODO Auto-generated method stub
String response = "success";
MuleMessage mulemessage = event.getMessage();
String countryCode = mulemessage.getInboundProperty("username");
String sourceCode = mulemessage.getInboundProperty("password");
InputStream input = (InputStream) mulemessage.getPayload();
...
为了测试,一个简单的 html:
<form action="http://tango.privada.informa:11002/services/fileupload" method="post"
enctype="multipart/form-data">
<p>Country Code :<input type="text" name="username" /></p>
<p>Source Code :<input type="text" name="password" /></p>
<p>File :<input type="file" name="payload" /></p>
<p><input type="submit" name="submit" value="submit" />
<input type="reset" name="reset" value="reset"></p>
</form>
</body>
</html>
问题是我无法从 mulemessage 的有效负载创建文件,并且我不知道如何获取表单中输入的值......我做错了什么?有什么线索吗?
提前致谢
您需要配置 HTTP 连接器才能使用org.mule.transport.http.HttpMultipartMuleMessageFactory
为了处理multipart/form-data
HTTP POST。
为此,请将以下内容添加到您的配置中:
<http:connector name="httpConnector">
<service-overrides messageFactory="org.mule.transport.http.HttpMultipartMuleMessageFactory"/>
</http:connector>
有了这个,payload
表单字段将成为 Mule 消息的流式有效负载,所有其他字段值将位于入站附件(任何部分标题将位于入站标头).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)