0

我是 Mule 的新手,并试图让一个简单的流程工作。基本思想是从 imap 框中获取电子邮件,获取电子邮件的正文(文本),将其放入 xml/soap 消息中并发布到soap web 服务。

我已经设置了我的流程,它似乎适用于大约 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。

谢谢!

4

0 回答 0