【发布时间】:2015-10-13 10:11:09
【问题描述】:
这是路线:
<route id="reading1">
<from uri="timer:timerName?period=50000"/>
<to uri="imap://server/?username=My_@mail&password=My_password"/>
<log message="${body}"/>
</route>
当我运行它时,我得到了这个错误:
javax.mail.NoSuchProviderException: invalid provider
at javax.mail.Session.getTransport(Session.java:724)
at javax.mail.Session.getTransport(Session.java:668)
at javax.mail.Session.getTransport(Session.java:648)
at org.apache.camel.component.mail.DefaultJavaMailSender.getTransport(DefaultJavaMailSender.java:138)
at org.apache.camel.component.mail.DefaultJavaMailSender.send(DefaultJavaMailSender.java:110)
at org.apache.camel.component.mail.MailProducer.process(MailProducer.java:63)
at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:157)
at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:304)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:152)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:165)
at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:73)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
[ thread #0 - timer://timerName] TimerConsumer WARN Error processing exchange. Exchange[Message: [Body is null]]. Caused by: [javax.mail.NoSuchProviderException - invalid provider]
当我把它改成:
<route id="reading1">
<from uri="imap://server/?username=My_@mail&password=My_password"/>
<log message="${body}"/>
</route>
有效
似乎 imap 组件不能在 <to../> 标签中,只有 <from ../> 标签,在我的情况下,imap 参数(用户名和密码)来自 Imap 之前的其他端点。
如何解决这个问题?
【问题讨论】:
标签: email apache-camel imap blueprint-osgi