我在这方面搜索了很多,我对 JBoss ESB 和 Camel 相当满意。
我已经定义了一个 Camel Mail 端点,我的目标是从电子邮件中提取附件,以便将它们用于基于内容的路由。
JB ESB 中的 Camel 集成有点像一个黑盒子,但基本上,电子邮件的正文内容以字符串形式出现在默认位置的消息正文中。如果是纯文本或 HTML 电子邮件,这很好,我可以使用它。但是如果有多个附件,Camel 会提供一个 javax.mail.internet.MimeMultiPart (这很好)
问题是 JBoss ESB 正试图将其“强制”为字符串,或者看起来如此,因为消息正文默认位置实际上是一个字符串对象,其值为例如 javax.mail.internet.MimeMultipart@100600 当我尝试将正文转换为 mimeMultipart,通过 javax.mail.internet.MimeMultipart mime= (MimeMultipart)message.getBody().get();,我得到可预测的异常 java.lang.ClassCastException: java.lang.String cannot be转换为 javax.mail.internet.MimeMultipart
如何访问使用骆驼邮件入站到 JBoss ESB 的 MIME Multipart 消息的不同部分?
非常感谢,股东周年大会
骆驼邮件 2.10
Jboss ESB 5.3.1
视窗环境
复制到同事的机器上
10:39:54,808 INFO [STDOUT] Body Name is org.jboss.soa.esb.message.defaultEntry
10:39:54,809 INFO [STDOUT] Body Class is class java.lang.String
10:39:54,809 INFO [STDOUT] Attempting to display body contents via toString
10:39:54,809 INFO [STDOUT] body value is javax.mail.internet.MimeMultipart@150ce1d
10:39:54,809 INFO [STDOUT] javax.mail.internet.MimeMultipart@150ce1d
10:39:54,809 INFO [STDOUT] class java.lang.String
10:39:54,809 INFO [STDOUT] class java.lang.String
10:39:54,810 ERROR [STDERR] java.lang.ClassCastException: java.lang.String cannot be cast to javax.mail.internet.MimeMultipart
10:39:54,810 ERROR [STDERR] at com.XXX.integration.actions.GetAttachment.process(GetAttachment.java:23)
10:39:54,810 ERROR [STDERR] at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:667)
10:39:54,810 ERROR [STDERR] at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:614)
10:39:54,811 ERROR [STDERR] at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:442)
10:39:54,811 ERROR [STDERR] at org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:587)
10:39:54,811 ERROR [STDERR] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
10:39:54,811 ERROR [STDERR] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
10:39:54,812 ERROR [STDERR] at java.lang.Thread.run(Thread.java:662)
10:39:54,812 INFO [STDOUT] FULL SPOOL: