2009-06-30 23 views
0

2つのWebアプリケーション(AとB)の間でJavaメールメッセージオブジェクトを共有する必要があります。Webアプリケーション間でメッセージオブジェクトを共有する

のWebApplication Aは、メッセージを取得し、

for(int i=0;i<messagesArr.length;i++){ 
    uid = pop3FolderObj.getUID(messagesArr[i]); 
//storing messages with uid names inorder to maintain uniqueness 
    File f = new File("F:/PersistedMessagesFolder" + uid); 
    FileOutputStream fos = new FileOutputStream(f); 
    messagesArr[i].writeTo(fos); 
    fos.flush(); 
    fos.close(); 
} 

がたFileOutputStreamは、メッセージオブジェクトを永続化するための最良の出力ストリームですOutputStreamにそれを書くのか?メッセージオブジェクトの永続化にObjectOutputStreamを使用することは可能ですか?

のWebApplication Bは

FileInputStream fis = new FileInputStream("F:/MessagesPersistedFolder"+uid); 
MimeMessage mm = new MimeMessage(sessionObj,fis); 

のInputStream

を経由してメッセージオブジェクトを読み込み、何すでに説明WebApplication Aを経由して書かれているメールメッセージのオブジェクトがで、MimeMessageない場合は?入力ストリームを使用して非MIMEメッセージを読み取るにはどうすればよいですか?

MimeMessageコンストラクタは、最初のパラメータとしてsessionObjを必須としていますか? WebApplicationBでこのsessionObjを取得するにはどうすればよいですか?このセッションオブジェクトを取得するために、同じemailid、emailpassword、popserver、およびport(すでにWebApplication Aで使用されている)とメール接続を確立してstore接続を再度確立する必要がありますか?取得されたとしても、このセッションオブジェクトはWebApplicationAで事前に取得されたセッションオブジェクトと同じままですか?

WebApplication AとWebApplication Bの間でこれらのUIDを共有するにはどうすればよいですか?(ファイル名の一意性を維持するために)メッセージオブジェクトにuidを使用していますか? WebApplication Bは、 "F:/ MessagesPersistedFolder"内にある特定のファイルにアクセスするために、inidのuidを必要とします。

予期しない問題を解決する際にお手伝いをしてください。

+0

私は、この「質問」に約4つまたは5つの別々の質問があると考えます。 –

答えて

1

ここで実装しようとしている実際の機能は何ですか?丸穴(2つのアプリケーション間でメッセージデータを共有するための要件)に四角形のペグ(Javamailメッセージクラス)を収めようとしているようです。

私のアドバイスは、いずれか、次のようになります。

1)は、メッセージキューを使用してjavax.jms.TextMessageを使用して、他の1つのアプリケーションから電子メールメッセージの内容を送信します。

2)または両方のアプリケーションがアクセスする共有データベースのフィールドにメッセージの内容を保存します()。

Javamail APIを使用してデータを共有する手段ではなく、電子メールを送信します。また、あなたがjava.io.ObjectOutputStreamでやっていると思いますが唯一のJavaMail APIの特定のバージョンで動作するファイルを作成し、私はこれらの日くらいのJavaMailの変更を疑うながら、私はいないだろうどうなるかであるシリアライズを、使用して

可能性を排除したい。

+0

私はモバイルから新しいメールのために通信するメールクライアントWebアプリケーションを開発しています。ウェブアプリケーションでは、2つのリソース集約クラス。 1.MailGetter(ユーザーから提供された多数のemailidを繰り返し、emailidsの電子メールを取得する)2. MailFormatter(Mobileに送信されるhtmlタグを削除してMultipartコンテンツを単純なテキストに解析し、このクラスも一括添付ファイルをダウンロードする) MailGetterとMailFormatterを別のサーバーにある2つのWebアプリケーションとして実装しようとしています。だから私はこれらのアプリケーション間でメッセージオブジェクトを共有する必要があります。 – jezhilvalan

+0

私はあなたが 'シンプルテキスト'と '添付ファイル'を保存したいと仮定しています。その場合、ドメインクラスを定義し、データベースにデータを格納する傾向があります(2つの間のロック競合データ上のウェブアプリ)。 MailFormatterは、(Javamailを使用して)メッセージを取得し、ドメインクラスのインスタンスに変換して格納する責任を負います。 MailGetterの 'emailidsのための電子メール'は、コード内の反復ではなく、クエリになります。結果は、両方のWebアプリケーションで使用されるドメインクラスとDAOを含む共通のjarです。 –

+0

お返事ありがとうございます。あなたはドメインクラスを説明できますか?これらのクラスは何ですか?したがって、MailFormatterは、リモートからの電子メールを取得した後、emailボディの内容と添付ファイルを簡潔に示します.MailGetterは最近到着した電子メールデータをdbに問い合わせます。私はそれを正しく理解していますか?あなたはあなたのコンセプトを説明できますか? – jezhilvalan

関連する問題