2009-06-30 96 views
0

我需要在兩個Web應用程序(A和B)之間共享Java郵件消息對象。在Web應用程序之間共享消息對象

WebApplication的A獲得的消息,並將其寫入到的OutputStream

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中以用於存留消息對象的最佳輸出流?是否可以使用ObjectOutputStream進行消息對象持久化?

的WebApplication b。通過爲InputStream

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

讀取消息對象如果它是通過一個WebApplication的已經寫好的郵件對象不是一個MimeMessage?如何使用輸入流讀取非MIME消息?

MimeMessage構造函數要求sessionObj作爲第一個參數?我如何在WebApplicationB中獲得這個sessionObj?我是否必須再次通過電子郵件服務器建立與同一個emailid,emailpassword,popserver和端口(已在WebApplication A中使用)的商店連接才能獲得此會話對象?即使獲得,該會話對象是否仍然與先前在WebApplicationA中獲得的會話對象的會話對象相同?

由於我使用uids來命名Message對象(爲了保持文件名的唯一性),我怎樣才能在WebApplication A和WebApplication B之間共享這些uid? WebApplication B需要uid來訪問「F:/ MessagesPersistedFolder」中的特定文件。

請幫我解決上述問題。

+0

我覺得有這「問題」 – 2009-06-30 08:22:30

回答

1

你試圖在這裏實現的實際功能是什麼?這聽起來像是你試圖在一個圓洞(在兩個應用程序之間共享消息數據的要求)中適配一個平方樁(Javamail消息類)。

我的建議是,要麼:

1)使用消息隊列和使用javax.jms.TextMessage從一個應用程序發送的電子郵件中的內容到其他。

2)或將郵件內容保存到共享數據庫中的clob字段,這兩個應用程序都可以訪問該字段。

在一天結束時,請使用Javamail API發送電子郵件,而不是共享數據的方式。

而且使用系列化,這是你與java.io.ObjectOutputStream做什麼會產生的文件,將只在JavaMail API的特定版本的工作,雖然我懷疑JAVAMAIL改變太多,這些天,我不會想排除可能性。

+0

我發展將從新emails.In Web應用程序的移動進行通信的電子郵件客戶端的Web應用程序約4或5個獨立的問題,有2個資源集中授課。 1.MailGetter(超過由用戶提供的衆多emailids迭代,並獲得電子郵件的emailids)2. MailFormatter(刪除將被髮送給移動和與此類還批量下載附件的HTML標籤解析多部分內容轉換成簡單的文本),所以我米試圖實現MailGetter和MailFormatter爲2的Web應用程序,這將是在不同的服務器上。所以,我需要共享這些應用程序之間的消息對象。 – jezhilvalan 2009-06-30 10:09:44

相關問題