我正在使用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公开。
答案 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冲突。