1

サーバーに接続するブラウザーを作成しようとしています。ユーザーが URL を入力すると、ブラウザーはその URL をサーバーに送信します。次に、サーバーは JEditorPane で URL を開き、getDocument() メソッドを使用して、ObjectOutputStream を介してクライアントにそのドキュメントを送信しようとします。残念ながら、私はこれを理解できませんでした.objectoutputstreamを介してドキュメントを送信することはできませんか、それとも何が間違っていますか?

私が使用しているコードは次のとおりです。

ページを設定してドキュメントを取得するメソッド:

url = (String) input.readObject();

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

sendDoc(doc);

objectoutputstream を介してドキュメントを送信するメソッド:

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)

長いエラーメッセージで申し訳ありません。一部を取り出したので、それほど長くはありません...

4

1 に答える 1

2

ここでそう言います:

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

この内部 CSS$Value クラスはあなたを殺しています。おそらく、それに対してできることはあまりありません。

むしろ、この場合、実際の未加工の HTML を送信するよりも Document を送信する方が優れている理由を疑問視する必要があります。

于 2012-12-07T21:55:30.800 に答える