Java jar имя вызывает исключение JAF? - PullRequest
0 голосов
/ 04 марта 2011

У меня странная проблема с компонентом отправки почты в одном из наших проектов.Поскольку мы перешли на использование Apache Ivy для управления зависимостями сборки, теперь мы развернем jar с именем mail-1.4.4.jar вместо предыдущего mail.jar.

С версионной флягой мы получаем трассировку стека (см. Ниже).Если я возьму эту же банку и вручную переименую ее в mail.jar, письмо будет успешно отправлено.Похоже, что какая-то проблема с classpath, когда JAF не может найти классы почтовых компонентов, но я озадачен тем, как решить проблему с корнем, а не решением проблемы с перехватом, таким как настройка сборки для переименования jar.

Ошибка трассировки стека:

javax.mail.MessagingException: IOException while sending message;
  nested exception is:
        javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed;
        boundary="----=_Part_0_522583802.1299253374905"
        at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1141)
        at javax.mail.Transport.send0(Transport.java:195)
        at javax.mail.Transport.send(Transport.java:124)
        at com.rbccm.core.util.MailUtil.sendMail(MailUtil.java:91)
        at com.rbccm.core.util.MailUtil.sendWithAttachment(MailUtil.java:59)
        at com.rbccm.core.util.MailUtil.sendWithAttachment(MailUtil.java:36)
        at com.rbccm.core.util.MailTask$Command$1.execute(MailTask.java:88)
        at com.rbccm.core.util.MailTask$Command$1.execute(MailTask.java:83)
        at com.rbccm.core.util.BatchTask.execute(BatchTask.java:31)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:357)
        at org.apache.tools.ant.Target.performTasks(Target.java:385)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
        at org.apache.tools.ant.Main.runBuild(Main.java:758)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Caused by: javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed;
        boundary="----=_Part_0_522583802.1299253374905"
        at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:877)
        at javax.activation.DataHandler.writeTo(DataHandler.java:302)
        at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1476)
        at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1772)
        at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1099)
        ... 25 more

Выход Java-версии:

java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) 64-Bit Server VM (build 14.0-b16, mixed mode)

1 Ответ

0 голосов
/ 04 марта 2011

Это звучит как проблема пути к классу. Платформа активации Java может быть настроена с путем к классу, который включает mail.jar. Это объясняет, почему это работает, когда вы переименовываете mail-1.4.4.jar в mail.jar.

Убедитесь, что ваши jar JAF и Java Mail API совместимы, затем обновите путь к классу соответствующим образом.

...