使用JavaMail API在servicemix下发送电子邮件时的ClassCastException

时间:2011-07-19 14:46:39

标签: java javamail apache-servicemix

我正在使用JavaMail API在servicemix下发送附带附件的电子邮件。我使用相同的代码,独立工作,我得到一个奇怪的例外:

  

线程“pool-6-thread-5”中的异常java.lang.ClassCastException:   com.sun.mail.handlers.multipart_mixed at   org.apache.servicemix.specs.activation.OsgiMailcapCommandMap.createDataContentHandler(OSG   iMailcapCommandMap.java:60)

我尝试了很多技巧,包括在包定义中导入包com.sun.mail.handlers以及描述in this thread的那些。

该项目是由JDK 1.5,FuseESB 4.2

运行的java 1.5代码

- 修改 -

问题是由weblogic.jar加载到servicemix引起的,servicemix提供了自己的mailcap和来自java mail api和激活的文件的副本,通过META_INF公开。

1 个答案:

答案 0 :(得分:0)

这听起来像一个冲突的类案例。

  

ab.jar有AB类

     

cd.jar也有AB类

然后你的应用程序使用包括ab.jar和cd.jar的类路径运行。 Java从ab.jar加载AB类,但实际上要加载的正确类是来自cd.jar的AB。

也许您可以尝试在jar文件中搜索冲突类。如果您使用Eclipse,可以轻松完成。将所有jar包括到项目的构建路径中,然后按:CTRL + SHIFT + T(Open Type的快捷方式),键入:multipart_mixed并查看有多少罐子。

也可能与java运行时库中的activation.jar冲突。