首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将EmailMessage转换为ByteArrayOutputStream

将EmailMessage转换为ByteArrayOutputStream
EN

Stack Overflow用户
提问于 2013-10-31 18:50:08
回答 1查看 574关注 0票数 2

我正在使用Java EWS API (EWS - Exchange Web服务)从Exchange服务器获取电子邮件,并将其存储在专有CMS中。我收到消息的类型是microsoft.exchange.webservices.data.EmailMessage - EWS API提供的一个类。CMS要求将ByteArrayOutputStream对象作为其方法的参数。

所以我想把EmailMessage对象转换成ByteArrayOutputStream。我看到了this thread,并尝试了类似的方法:(下面的itemEmailMessage类型)

代码语言:javascript
复制
ByteArrayOutputStream b = new ByteArrayOutputStream();
try
{
    ObjectOutputStream o  = new ObjectOutputStream(b);
    o.writeObject((Object)item);
}
catch(IOException ioe)   
{
    ioe.printStackTrace(); 
}

但我得到了

代码语言:javascript
复制
java.io.NotSerializableException: microsoft.exchange.webservices.data.EmailMessage
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)   
     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)

我可以使用FileOutputStream将这些EmailMessage对象保存为.eml格式,但是现在我无法找到将它们转换为ByteArrayOutputStream的方法。那么有没有什么方法可以把FileOutputStream转换成ByteArrayOutputStream,或者直接从EmailMessage转换成ByteArrayOutputStream呢?

EN

回答 1

Stack Overflow用户

发布于 2013-10-31 19:06:43

因为你的(Object)item的类没有实现Serializable接口,所以你会得到这个异常。

对于OutputStream的问题和不应序列化的类,将引发

异常。所有异常对处于不确定状态的OutputStream都是致命的,由调用方决定是否忽略或恢复流状态。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19704462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档