繁体   English   中英

使用 JavaMail API 在 servicemix 下发送 email 时发生 ClassCastException

[英]ClassCastException when sending email under servicemix using JavaMail API

我正在使用 JavaMail API 在 servicemix 下发送带有附件的 email。 我正在使用独立运行的相同代码,但出现了一个奇怪的异常:

Exception in thread "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)

我尝试了很多技巧,包括在捆绑定义中导入 package com.sun.mail.handlers 和在这个线程中描述的那些。

该项目是由JDK 1.5,FuseESB 4.2运行的java 1.5代码

--编辑--

问题是由 weblogic.jar 加载到 servicemix 中引起的,它提供了来自 java 邮件 api 和激活的 mailcap 和其他文件的自己的副本,并通过 META_INF 暴露。

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

ab.jar 有 Class AB

cd.jar 也有 Class AB

然后您的应用程序使用包含 ab.jar 和 cd.jar 的类路径运行。 Java load Class AB from ab.jar, but actually the correct Class to be loaded is AB from cd.jar.

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM