带附件的电子邮件导致Mule出错

时间:2010-11-09 12:31:19

标签: java esb mule

我使用 imaps:connector 进行了 Mule 2.2.1 配置。 但我无法处理附件的电子邮件。有经验吗?

org.mule.api.service.ServiceException: Cannot route event as component "imap" is stopped. Component that caused exception is: SedaService{imap}. Message payload is of type: MimeMessage

或者,如果删除org.mule.transport.email.SimpleMailMessageAdapter,则会报告输入 MimeBodyPart 而不是 MimeMessage

我试图尽可能地限制配置(没有outbouds,没有组件),但它没有帮助。

    <imaps:connector name="imapConnector" checkFrequency="${imap.checkFrequency}" deleteReadMessages="${imap.deleteReadMessages}" >
        <imaps:tls-client path="${keystore}" storePassword="${keystore.password}" />
        <imaps:tls-trust-store path="${keystore}" storePassword="${keystore.password}" />
    </imaps:connector>

    <model>

        <service name="imap">
            <inbound>
                <imaps:inbound-endpoint host="${imap.host}"
                    port="${imap.port}" user="${imap.user}"
                    password="${imap.password}" connector-ref="imapConnector">

                </imaps:inbound-endpoint>
            </inbound>

        </service>

    </model>

修改

奇怪!变形金刚没有帮助,因为他们甚至没有被召唤。我写了一个不做任何事情的习惯,仅用于调试目的。 如果添加到入站,则调用Transformer。它会导致跳过组件,甚至是不存在的组件。

1 个答案:

答案 0 :(得分:0)

由于FunctionalTestCase,我无法识别问题。骡子的表现与众不同。服务器引发了可以理解的异常。

java.lang.ClassCastException: javax.mail.internet.MimeMultipart cannot be cast to java.lang.String
    at org.mule.transport.email.transformers.EmailMessageToString.doTransform(EmailMessageToString.java:57)

默认的电子邮件转换器EmailMessageToString不期望MimeMultipart可能包含另一个MimeMultipart,而不仅仅是字符串。