Java - 通过ObjectOutputStream发送文档

时间:2012-12-07 21:44:51

标签: java document objectoutputstream

好的,我正在尝试创建一个连接到服务器的浏览器,当用户输入url时,浏览器会将该url发送到服务器。然后,服务器在JEditorPane中打开url,然后使用getDocument()方法尝试通过ObjectOutputStream将该文档发送回客户端。不幸的是我无法解决这个问题,是不是可以通过objectoutputstream发送文档或者我做错了什么?

这是我正在使用的代码:

设置页面并获取文档的方法:

url = (String) input.readObject();

window.setPage(url);
doc = window.getDocument();

sendDoc(doc);

通过objectoutputstream发送Document的方法:

try {

    output.writeObject(doc); // no compiling errors...
    output.flush();

} catch (Exception e) { }

我得到的错误:

java.io.WriteAbortedException: writing aborted;
java.io.NotSerializableException:
javax.swing.text.html.CSS$Value is not serializable as a value in an AttributeSet

...

at DawgsCodeBrowser.whileConnected(DawgsCodeBrowser.java:101)
at DawgsCodeBrowser.Run(DawgsCodeBrowser.java:71)
at StartBrowser.main(StartBrowser.java:8)
Caused by: java.io.NotSerializableException:
javax.swing.text.html.CSS$Value is not serializable as a value in an AttributeSet

...

at DawgsCodeServer.sendDoc(DawgsCodeServer.java:154)
at DawgsCodeServer.whileConnected(DawgsCodeServer.java:100)
at DawgsCodeServer.Run(DawgsCodeServer.java:59)
at StartServer.main(StartServer.java:11)

抱歉收到很长的错误信息,我拿出了一些,所以它不会那么久......

1 个答案:

答案 0 :(得分:2)

就在这里说:

Caused by: java.io.NotSerializableException: javax.swing.text.html.CSS$Value is not serializable as a value in an AttributeSet 

这个内部的CSS $ Value类正在杀死你,你可能无法做很多事情。

相反,您需要质疑为什么发送文档比在这种情况下发送实际的原始HTML更好。