带有Lift框架的Javax邮件

时间:2011-07-11 08:32:28

标签: lift javax.mail javax.activation

我有一个奇怪的问题。

我将我的webapp部署到服务器(jetty 7.4.3.v20110701),所有内容(包括邮件程序)似乎都运行良好。用于发送电子邮件的调试信息(使用-Djavax.activation.debug=true获得)如下所示:

MailcapCommandMap: createDataContentHandler for text/html
  search DB #0
    got content-handler
      class com.sun.mail.handlers.text_html
INFO  [qtp1699297250-32] net.liftweb.util.TimeHelpers.info[195] - Service request (GET) /reservation/276 returned 200, took 264 Milliseconds
INFO  [qtp1699297250-34] net.liftweb.util.TimeHelpers.info[195] - Service request (GET) /ajax_request/liftAjax.js returned 200, took 9 Milliseconds
MailcapCommandMap: createDataContentHandler for multipart/alternative
  search DB #0
    got content-handler
      class com.sun.mail.handlers.multipart_mixed

然后突然间,代码突然停止工作:

Can't load DCH com.sun.mail.handlers.multipart_mixed; Exception: 
java.lang.ClassNotFoundException: com/sun/mail/handlers/multipart_mixed
  search DB #1
  search DB #2
  search DB #3
  search fallback DB #0
  search fallback DB #1
    got content-handler
      class com.sun.mail.handlers.multipart_mixed
Can't load DCH com.sun.mail.handlers.multipart_mixed; Exception: java.lang.ClassNotFoundException: com/sun/mail/handlers/multipart_mixed
  search fallback DB #2
    got content-handler
      class com.sun.mail.handlers.multipart_mixed
Can't load DCH com.sun.mail.handlers.multipart_mixed; Exception: java.lang.ClassNotFoundException: com/sun/mail/handlers/multipart_mixed
  search fallback DB #3
ERROR [pool-3-thread-13] net.liftweb.util.MailerImpl.error[239] - Couldn't send mail
javax.mail.MessagingException: IOException while sending message
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1141) ~[mail-1.4.4.jar:1.4.4]
    at javax.mail.Transport.send0(Transport.java:189) ~[mail-1.4.1.jar:1.4.1]
    at javax.mail.Transport.send(Transport.java:118) ~[mail-1.4.1.jar:1.4.1]
    at net.liftweb.util.MailerImpl$$anon$1$$anonfun$$init$$1.apply(Mailer.scala:180) ~[lift-util_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.util.MailerImpl$$anon$1$$anonfun$$init$$1.apply(Mailer.scala:180) ~[lift-util_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.util.MailerImpl$class.performTransportSend(Mailer.scala:174) ~[lift-util_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.util.Mailer$.performTransportSend(Mailer.scala:31) ~[lift-util_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.util.MailerImpl$class.msgSendImpl(Mailer.scala:276) ~[lift-util_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.util.Mailer$.msgSendImpl(Mailer.scala:31) ~[lift-util_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.util.MailerImpl$MsgSender$$anonfun$messageHandler$1.apply(Mailer.scala:158) [lift-util_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.util.MailerImpl$MsgSender$$anonfun$messageHandler$1.apply(Mailer.scala:155) [lift-util_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.actor.SpecializedLiftActor$class.execTranslate(LiftActor.scala:321) [lift-actor_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.util.MailerImpl$MsgSender.execTranslate(Mailer.scala:154) [lift-util_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.actor.SpecializedLiftActor$class.net$liftweb$actor$SpecializedLiftActor$$proc2(LiftActor.scala:289) [lift-actor_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.actor.SpecializedLiftActor$$anonfun$net$liftweb$actor$SpecializedLiftActor$$processMailbox$1.apply(LiftActor.scala:210) [lift-actor_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.actor.SpecializedLiftActor$$anonfun$net$liftweb$actor$SpecializedLiftActor$$processMailbox$1.apply(LiftActor.scala:210) [lift-actor_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.actor.SpecializedLiftActor$class.around(LiftActor.scala:224) [lift-actor_2.9.0-1-2.4-M1.jar:2.4-M1]
        at net.liftweb.util.MailerImpl$MsgSender.around(Mailer.scala:154) [lift-util_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.actor.SpecializedLiftActor$class.net$liftweb$actor$SpecializedLiftActor$$processMailbox(LiftActor.scala:209) [lift-actor_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.actor.SpecializedLiftActor$$anonfun$2$$anonfun$apply$mcV$sp$1.apply$mcV$sp(LiftActor.scala:173) [lift-actor_2.9.0-1-2.4-M1.jar:2.4-M1]
    at net.liftweb.actor.LAScheduler$$anonfun$9$$anon$2$$anon$3.run(LiftActor.scala:64) [lift-actor_2.9.0-1-2.4-M1.jar:2.4-M1]
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_24]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_24]
    at java.lang.Thread.run(Thread.java:662) [na:1.6.0_24]
Caused by: javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/alternative; 
    boundary="----=_Part_8_877795714.1310372068000"
    at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:877) ~[na:1.6.0_24]
    at javax.activation.DataHandler.writeTo(DataHandler.java:302) ~[na:1.6.0_24]
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1403) ~[mail-1.4.1.jar:1.4.1]
    at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1745) ~[mail-1.4.1.jar:1.4.1]
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1099) ~[mail-1.4.4.jar:1.4.4]
    ... 23 common frames omitted

一段时间后,它可以重新开始工作。

我尝试了解决方案,推荐herehere。我还尝试使用javax.activationjavax.mail 1.4.1排除1.4.4。两种解决方案都没有效可能是什么原因?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我能够通过在我的pom.xml中制作mail.jar和activation.jar provided来修复它。

      <dependency>
         <groupId>javax.mail</groupId>
         <artifactId>mail</artifactId>
         <version>1.4.1</version>
         <scope>provided</scope>
       </dependency>

我想,原因是容器已经有mail.jar,而jdk 1.6包含activation.jar。

相关问题