- - PR -
Servlet Application間プログラム(EOFException)
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-06-13 01:59
ranranさん、こんにちは。
アプレット側のHttpURLConnectionに対する connect() は何処かにありますか? |
|
投稿日時: 2005-06-13 20:55
Kissingerさん、ありがとうございます。
入出力する時点で勝手に接続すると思っていましたから、すみません。 con.connect(); をcon.setDoOutput(true)の後ろに入れました。 しかし、同じようなEOFExceptionが出ています。 よろしくお願い申し上げます。 |
|
投稿日時: 2005-06-14 00:58
ranranさん、
APIドキュメントの setDoOuput()には書かれていないようですが、 手元にあるElliotte Rusty Harold著「Javaネットワークプログラミング」 オライリー・ジャパンによれば、 setDoOutput(true)すると setDoInput(false)されてしまうそうです。 そこで、先に setDoOutput(true)、つぎに setDoInput(true)と やってみてください。 |
|
投稿日時: 2005-06-14 21:32
Kissingerさん、ありがとうございます。
con.setDoOutput(true); con.setDoInput(true); 前後順番を入れ替えても同じEOFExceptionがでますが、 以下のようにしますと、IllegalStateExceptionがでます。 con.setDoOutput(true); new ObjectOutputStream(con..getOutputStream()); outProcess(); con.setDoInput(true); <<<<ここでIllegalStateExceptionがthrowされます new ObjectInputStream(con.getInputStream()); inProcess(); エラーメッセージは java.lang.IllegalStateException: Already connected よろしくお願い申し上げます。 |
|
投稿日時: 2005-06-14 23:40
URLConnectionに対する set系メソッドは、
connect()後に行ってはいけません。 あと、getInputStream()するよりも前に outputを close()したような気がします。 |
|
投稿日時: 2005-06-15 11:45
Kissingerさん,有難うございます.
getOutputStream()の前に、setDoOutput(true), setDoInput(true) を入れてもだめでした.(その後に、connect()を有無にかかわらず) また、 getInputStream()の前に、 close()、disconnectを入れても、だめでした。 ObjectOutputStreamのInstanceをクロスしていますが, 他に何らか、クロスして,再接続する方法はあるでしょうか? 一応、getDoInput(), getDoOutput()を調べましたが、 最初にセットしたものより、変わりませんでした. よろしくお願い申し上げます. |
|
投稿日時: 2005-06-15 23:52
ranranさん、こんにちは。
ranranさん宛てにプライベートメッセージを入れて おきましたので、ご参照ください。 |
|
投稿日時: 2005-06-16 11:05
Kissingerさん、ありがとうございます。
テスト結果をご報告いたします. setDoInput -> setDoOutput -> getOutputStream -> output -> getInputStream -> input の順でよろしいようです. 別のところがエラーになっている可能性が大です 引き続きテストしていきます. お騒がせして申し訳ございませんでした. P.S. TOMCATはキャッシュを持っているでしょうか、 サブレットの.classファイルを単純に変えても、 そのまま、変更は反映されないようですね. |