我在Mule相当新,并试图让一个简单的流程工作。基本的想法是从一个imap框中获取电子邮件,获取电子邮件的正文(文本),将其放入xml / soap消息并发布到soap webservice。
我已经设置了流量,它似乎适用于大约50%的邮件。如果消息很短,一切都按预期工作;如果邮件有点长或包含附件,它会部分工作。
这是我的流程(仅相关部分):
<imap:inbound-endpoint host="mailserver" port="143"
user="me" password="mypassword" responseTimeout="10000" doc:name="IMAP"
connector-ref="imap">
<remove-attachment attachmentName="*" />
</imap:inbound-endpoint>
<remove-attachment attachmentName="*" doc:name="Attachment" />
<logger level="INFO" doc:name="Logger" />
<set-variable variableName="mailBody" value="#[payload]"
doc:name="Variable" />
<mulexml:object-to-xml-transformer
doc:name="Object to XML" />
<mulexml:xslt-transformer maxIdleTransformers="2"
maxActiveTransformers="5" xsl-file="submit_to_wfp.xsl" doc:name="XSLT"
ignoreBadInput="true">
<mulexml:context-property key="mailbody"
value="#[mailBody]" />
</mulexml:xslt-transformer>
<object-to-string-transformer doc:name="Object to String"
encoding="UTF-8" ignoreBadInput="true" mimeType="text/xml" />
<message-properties-transformer
doc:name="Message Properties" overwrite="true" encoding="UTF-8"
mimeType="text/xml">
<add-message-property key="content-Type" value="text/xml" />
</message-properties-transformer>
<!-- <file:outbound-endpoint path="/Users/me" outputPattern="xml.txt" responseTimeout="10000"
doc:name="File"/> -->
<http:outbound-endpoint exchange-pattern="request-response"
host="localhost" port="8082" doc:name="HTTP" contentType="text/xml"
path="wfp/services/wfp" encoding="UTF-8" mimeType="text/xml"
responseTimeout="500000" />
奇怪的是,如果我启用了出站文件端点而不是HTTP,一切正常,流程会产生完美的XML文件。如果消息较长(由于大量文本和/或附件),Mule会因为没有通过HTTP端点发送任何数据而失败(日志告诉我它已被触发)。
我应该在哪儿看?使用Mule 3.4CE btw。
谢谢!