-1

これはちょっとした問題ですが、javamail を使用して IMAP サーバーに接続し、いくつかのメッセージを取得しています。コマンド ラインでプログラムをローカルで実行すると問題なく動作しますが、Tomcat にアップロードして実行すると、 、次のキャスト エラーが発生します。

java.lang.ClassCastException: javax.mail.internet.MimeMultipart cannot be cast to javax.mail.internet.MimeMultipart

コード行は次のとおりです。

MimeMultipart mp;
mp = ((MimeMultipart)message.getContent());

メッセージは次のように定義されます。

Message message = null;
message = folder.getMessageByUID(14299);

ローカルで実行されているときにキャストできる理由はわかりませんが、サーバーでクラッシュします。私は両方とも同じメッセージを使用しています。これはハードコードされているため、MimeMultipart ではないメッセージを取得する可能性はありません。何か案は?他に何か投稿する必要がある場合は、お尋ねください。ありがとう!

4

3 に答える 3

0

これはおそらくクラスローダーの問題です。考えられるいくつかの解決策については、この質問を参照してください。

于 2013-04-24T15:02:19.097 に答える
0

質問の現在の状態で入手可能な情報に基づいて、ソリューションに到達するための最良の方法は、MimeMultipart をロードした ClassLoader を確認することです。

ClassLoader myClassLoader = new MyClass().getClass().getClassLoader();

ただし、その道をたどると、予想よりも時間がかかる可能性があります。

これは、Tomcat インストールのローカライズされたエラーである可能性が高いです。GlassFishのような別のサーバー、またはおそらくTomcat の新規インストールで試すことができれば、問題が解決することがあります。コマンドラインでプログラムが正常であることを確認しました。

于 2013-04-24T15:02:46.837 に答える