随机错误javax.activation.UnsupportedDataTypeException:MIME类型为multipart / mixed的无对象DCH

时间:2018-09-03 10:46:07

标签: java wildfly-10

当Java代码发送邮件时,Struts2中的Web应用程序出现随机错误:

javax.mail.MessagingException: IOException while sending message;
  nested exception is:
    javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed; 
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1290)
    at javax.mail.Transport.send0(Transport.java:255)
    at javax.mail.Transport.send(Transport.java:124)

我已经在WILDFLY 10(Jdk 1.8)中部署了文件战争,在war文件夹WEB-INF / lib中的战争里面有这些库: 激活1.1.jar和邮件1.4.jar。

有时发送电子邮件有效,但随机出现上述错误。 所有电子邮件都没有附件,并且代码始终相同。

我快疯了,我正在测试环境中进行电子邮件测试,并且它始终有效。

我在Wildfly中检查了文件夹“ modules / system / layers / base / javax / mail / api / main”,并在“ / modules / system / layers / base /”中创建了“ javax.mail-1.5.5.jar” javax / activation / api / main”中有“ activation-1.1.1.jar”

有什么主意吗? 非常感谢

2 个答案:

答案 0 :(得分:0)

在通过您的代码发送邮件之前,添加以下部分代码:

Thread.currentThread().setContextClassLoader( getClass().getClassLoader() );

答案 1 :(得分:0)

我在发送带有此代码的电子邮件之前建立了解决方案

MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); 
                mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); 
                mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); 
                mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); 
                mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); 
                mc.addMailcap("message/rfc822;; x-java-content- handler=com.sun.mail.handlers.message_rfc822");
                CommandMap.setDefaultCommandMap(mc);

谢谢