You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by HockeyDave <da...@yahoo.com> on 2008/10/12 01:52:55 UTC
Process Mail Attachment InvalidPayloadException Camel 1.4.0
How do I specify the mail payload format?
Thanks
Dave
<camelContext id="camel"
xmlns="http://activemq.apache.org/camel/schema/spring">
<route> <!--
&deleteProcessedMessages=true&contentType=multipart/mixed -->
<from
uri="pop3://mymailbox@localhost:110?password=mypassword&consumer.delay=60000"
/>
<to uri="bean:MailReader" />
<unmarshal>
<csv />
</unmarshal>
<to uri="bean:DartCSVConverter" />
<to uri="mock:finish" />
</route>
</camelContext>
<bean id="MailReader" class="com.contextweb.mail.MailReader">
</bean>
org.apache.camel.InvalidPayloadException: No in body available of type:
java.io.InputStream but has value: javax.mail.internet.MimeMultipart@1b071c0
of type: javax.mail.internet.MimeMultipart on: MailMessage:
messageNumber=[1], from=[David Peterson <dp...@contextweb.com>],
to=[reportdev <re...@contextweb.com>], subject=[FW: Doritos MTD],
sentDate=[Oct 11, 2008 7:44:02 PM] on the exchange: Exchange[MailMessage:
messageNumber=[1], from=[David Peterson <dp...@contextweb.com>],
to=[reportdev <re...@contextweb.com>], subject=[FW: Doritos MTD],
sentDate=[Oct 11, 2008 7:44:02 PM]]
at
org.apache.camel.util.ExchangeHelper.getMandatoryInBody(ExchangeHelper.java:127)
at
org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:41)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)
at
org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:155)
at
org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:91)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:57)
at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:39)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66)
at
org.apache.camel.component.mail.MailConsumer.processMessage(MailConsumer.java:169)
at
org.apache.camel.component.mail.MailConsumer.processMessages(MailConsumer.java:151)
at org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:105)
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:65)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
[onent.mail.MailComponent@4ab2f] DeadLetterChannel ERROR
Exchange[BodyType:javax.mail.internet.MimeMultipart, Body:
--
View this message in context: http://www.nabble.com/Process-Mail-Attachment-InvalidPayloadException-Camel-1.4.0-tp19937573s22882p19937573.html
Sent from the Camel - Users mailing list archive at Nabble.com.
RE: Process Mail Attachment InvalidPayloadException Camel 1.4.0
Posted by Claus Ibsen <ci...@silverbullet.dk>.
Hi
I think the issue is that you want to unmarshal the mail payload into CSV, and that the CSV unmarshal data format expects the payload to be readable as a java.io.InputStream but the mail message payload is: javax.mail.internet.MimeMultipart.
You can add a convertBodyTo -> String that is a type converter that is shipped out-of-the-box with camel-mail and string should be readable as a InputStream.
So insert this:
<convertBodyTo type="java.lang.String"/>
Before the <unmarshal>
<to uri="bean:MailReader" />
<convertBodyTo type="java.lang.String"/>
<unmarshal>
<csv />
</unmarshal>
Maybe we should support this type converter out-of-the-box in Camel. I will create a ticket in our bug tracker for it.
Med venlig hilsen
Claus Ibsen
......................................
Silverbullet
Skovsgårdsvænget 21
8362 Hørning
Tlf. +45 2962 7576
Web: www.silverbullet.dk
-----Original Message-----
From: HockeyDave [mailto:david_peterson4146@yahoo.com]
Sent: 12. oktober 2008 01:53
To: camel-user@activemq.apache.org
Subject: Process Mail Attachment InvalidPayloadException Camel 1.4.0
How do I specify the mail payload format?
Thanks
Dave
<camelContext id="camel"
xmlns="http://activemq.apache.org/camel/schema/spring">
<route> <!--
&deleteProcessedMessages=true&contentType=multipart/mixed -->
<from
uri="pop3://mymailbox@localhost:110?password=mypassword&consumer.delay=60000"
/>
<to uri="bean:MailReader" />
<unmarshal>
<csv />
</unmarshal>
<to uri="bean:DartCSVConverter" />
<to uri="mock:finish" />
</route>
</camelContext>
<bean id="MailReader" class="com.contextweb.mail.MailReader">
</bean>
org.apache.camel.InvalidPayloadException: No in body available of type:
java.io.InputStream but has value: javax.mail.internet.MimeMultipart@1b071c0
of type: javax.mail.internet.MimeMultipart on: MailMessage:
messageNumber=[1], from=[David Peterson <dp...@contextweb.com>],
to=[reportdev <re...@contextweb.com>], subject=[FW: Doritos MTD],
sentDate=[Oct 11, 2008 7:44:02 PM] on the exchange: Exchange[MailMessage:
messageNumber=[1], from=[David Peterson <dp...@contextweb.com>],
to=[reportdev <re...@contextweb.com>], subject=[FW: Doritos MTD],
sentDate=[Oct 11, 2008 7:44:02 PM]]
at
org.apache.camel.util.ExchangeHelper.getMandatoryInBody(ExchangeHelper.java:127)
at
org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:41)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)
at
org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:155)
at
org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:91)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:57)
at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:39)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66)
at
org.apache.camel.component.mail.MailConsumer.processMessage(MailConsumer.java:169)
at
org.apache.camel.component.mail.MailConsumer.processMessages(MailConsumer.java:151)
at org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:105)
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:65)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
[onent.mail.MailComponent@4ab2f] DeadLetterChannel ERROR
Exchange[BodyType:javax.mail.internet.MimeMultipart, Body:
--
View this message in context: http://www.nabble.com/Process-Mail-Attachment-InvalidPayloadException-Camel-1.4.0-tp19937573s22882p19937573.html
Sent from the Camel - Users mailing list archive at Nabble.com.