新しいメールを取得するためにjavamailapi1.4.1を使用しています。電子メールを取得して解析するために2つのクラスが使用されています。「GetMail」クラスはメールサーバー(Gmail、yahooなど)と通信し、メッセージオブジェクトを取得します。次に、メッセージオブジェクトはさらに別のクラス「MailFormatter」クラスに渡されます。このクラスはメッセージオブジェクトを解析し、電子メールヘッダー(From、To、Subjectなど)を取得してから、マルチパートコンテンツを解析して本体と添付ファイルを取得します。 「メール取得」プロセスと「メールフォーマット」プロセスはどちらも非常にリソースを消費します。これらのクラスは個別のWebアプリケーションとして実装されます。このアプリケーションは、多数の電子メールIDについて新しい電子メールを監視します。これらの場合(「GetMail」と「MailFormatter」 ")個別のWebアプリケーションとして実装され、「GetMail」アプリから「MailFormatter」アプリにメッセージオブジェクトを渡すにはどうすればよいですか?取得したメッセージオブジェクトを特定の場所(「GetMail」アプリケーションと「MailFormatter」アプリケーションの両方に共通の場所)に永続化して、「GetMail」がその場所にメッセージオブジェクトを永続化できるようにする方法はありますか。次に、「MailFormatter」アプリはその場所から「メッセージ」オブジェクトを読み取り、解析プロセスを実行できます。メッセージオブジェクトはシリアル化できません。シリアル化できない場合、Javaメールメッセージオブジェクトの状態を保持するにはどうすればよいですか?この問題を解決するのを手伝ってください。アプリ ?取得したメッセージオブジェクトを特定の場所(「GetMail」アプリケーションと「MailFormatter」アプリケーションの両方に共通の場所)に永続化して、「GetMail」がその場所にメッセージオブジェクトを永続化できるようにする方法はありますか。次に、「MailFormatter」アプリはその場所から「メッセージ」オブジェクトを読み取り、解析プロセスを実行できます。メッセージオブジェクトはシリアル化できません。シリアル化できない場合、Javaメールメッセージオブジェクトの状態を保持するにはどうすればよいですか?この問題を解決するのを手伝ってください。アプリ ?取得したメッセージオブジェクトを特定の場所(「GetMail」アプリケーションと「MailFormatter」アプリケーションの両方に共通の場所)に永続化して、「GetMail」がその場所にメッセージオブジェクトを永続化できるようにする方法はありますか。次に、「MailFormatter」アプリはその場所から「メッセージ」オブジェクトを読み取り、解析プロセスを実行できます。メッセージオブジェクトはシリアル化できません。シリアル化できない場合、Javaメールメッセージオブジェクトの状態を保持するにはどうすればよいですか?この問題を解決するのを手伝ってください。メッセージオブジェクトはシリアル化できません。シリアル化できない場合、Javaメールメッセージオブジェクトの状態を保持するにはどうすればよいですか?この問題を解決するのを手伝ってください。メッセージオブジェクトはシリアル化できません。シリアル化できない場合、Javaメールメッセージオブジェクトの状態を保持するにはどうすればよいですか?この問題を解決するのを手伝ってください。
2288 次
2 に答える
1
まあ、MimeMessage は writeTo(OutputStream) でシリアライズでき、コンストラクタ MimeMessage(Session,InputStream) でデシリアライズできます。
したがって、ある Web アプリから別の Web アプリにメッセージを送信できます。
于 2009-06-29T09:58:32.597 に答える
0
私はあなたの質問に答えていないことを認識しています (!) が、正しい問題を解決しているかどうか疑問に思います. 解析に時間がかかりすぎて、別のプロセスに分割する必要がありますか。あるスレッドを介してメッセージを収集し、別のスレッドを介して非同期的に解析しようとしましたか? これは、何らかの形式の IPC を実行するよりも簡単だと思います。
ではないオブジェクトをシリアライズしたい場合は、 XStreamSerializable
を見てください。これは、ほとんどのものを XML との間でシリアライズします。
于 2009-06-29T10:06:55.233 に答える