ClassCastException при отправке электронной почты под servicemix с использованием JavaMail API - PullRequest
1 голос
/ 19 июля 2011

Я отправляю электронное письмо с вложениями под servicemix, используя API JavaMail. Я использую тот же код, который работает автономно, и я получаю странное исключение:

Исключение в потоке "pool-6-thread-5" java.lang.ClassCastException: com.sun.mail.handlers.multipart_mixed в org.apache.servicemix.specs.activation.OsgiMailcapCommandMap.createDataContentHandler (OSG iMailcapCommandMap.java:60)

Я перепробовал много хитростей, в том числе импорт пакета com.sun.mail.handlers в определении комплекта и описанных в этой теме .

Проект представляет собой код java 1.5, выполняемый JDK 1.5, FuseESB 4.2

- редактировать -

Проблема была вызвана файлом weblogic.jar, загруженным в servicemix, который предоставил собственные копии mailcap и других файлов из java mail api и активации, предоставляемые через META_INF.

1 Ответ

0 голосов
/ 19 июля 2011

Звучит как конфликт между классами.

ab.jar имеет класс AB

cd.jar также имеет класс AB

А затем ваше приложение запускается с classpath, включая ab.jar и cd.jar. Java загружает класс AB из ab.jar, но на самом деле правильный загружаемый класс - это AB из cd.jar.

Возможно, вы можете попробовать найти в jar-файлах конфликтующие классы. Это может быть легко сделано, если вы используете Eclipse. Включите все файлы jar в путь сборки проекта, а затем нажмите: CTRL + SHIFT + T (ярлык для открытого типа), введите: multipart_mixed и посмотрите, сколько у него файлов jar.

Может также конфликтовать с activ.jar в библиотеке времени выполнения Java.

...