1

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のインポートや、このスレッドで説明されているものなど、多くのトリックを試しました。

プロジェクトは、JDK 1.5、FuseESB4.2によって実行されるjava1.5コードです。

-編集-

この問題は、servicemixにロードされたweblogic.jarが原因で発生しました。これは、META_INFを介して公開されたjavamailapiおよびアクティベーションからのmailcapおよびその他のファイルの独自のコピーを提供します。

4

1 に答える 1

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と入力して、jarファイルの数を確認します。

また、Javaランタイムライブラリのactivation.jarと競合する可能性があります。

于 2011-07-19T15:47:27.217 に答える