我需要在两个 Web 应用程序(A 和 B)之间共享 java 邮件消息对象。
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 A 写入的邮件消息对象不是 MimeMessage 怎么办?如何使用输入流读取非 mime 消息?
MimeMessage 构造函数要求 sessionObj 作为第一个参数?如何在 WebApplicationB 中获取此 sessionObj?我是否必须再次与电子邮件服务器建立具有相同电子邮件 ID、电子邮件密码、popserver 和端口(已在 WebApplication A 中使用)的存储连接才能获得此会话对象?即使获得了,这个会话对象会不会和之前在WebApplicationA中获得的会话对象保持一致?
由于我使用 uid 来命名 Message 对象(为了保持文件名的唯一性),我如何在 WebApplication A 和 WebApplication B 之间共享这些 uid?WebApplication B 需要 uid 才能访问“F:/MessagesPersistedFolder”中存在的特定文件
请帮助我解决上述问题。