get OutputStream()has already been caled for this reponse
[size=medium]は、
http://sctom123.iteye.com/blog/139278
JEEE開発ファイルのダウンロード中です。時々見ます
ネットで検索したら。
へへ。org.apaache.jasper.runtime.PageConttextImpl.release
上のスタックから見られます。javax.servlet.http.HttpServlet.serviceでエラーが発生しました。org.apage.jasper.runtime.JspFactoryImpl.release PageConttextを実行します。その後、org.apacthe.ccannector.Resonse.getWriterを呼び出します。
getWriterは、ファイルをダウンロードする際に使うレスリング.get OutputStream()と競合します。以下のdocを見ます
javaコード
このようなコードがあります。
finally{
}
ここでは、Jspで使用されているオブジェクトをリリースして、レスポンス.getWriterを呼び出します。
jsp内のスペースとエコーマークを全部削除します。
そして私の前のエラースタックを見ました。
http://sctom123.iteye.com/blog/139278
JEEE開発ファイルのダウンロード中です。時々見ます
java.lang.IllegalStateException: getOutputStream() has already been called [b]for[/b] [b]this[/b] response
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)
このような間違いは、問題の所在がよく分かりません。偶然の操作で、私はサービスボルトの業務ロジックのコードをtry、catchで包みます。以下の通りです
............
e.printStackTrace();
上記の異常消失を発見しました。RuntimeExceptionエラーのスタックが印刷されました。このRuntimeExceptionエラーは処理された後、すべて正常です。これからどうやってサーバーを処理するかという奇妙な行動を連想します。ネットで検索したら。
へへ。org.apaache.jasper.runtime.PageConttextImpl.release
上のスタックから見られます。javax.servlet.http.HttpServlet.serviceでエラーが発生しました。org.apage.jasper.runtime.JspFactoryImpl.release PageConttextを実行します。その後、org.apacthe.ccannector.Resonse.getWriterを呼び出します。
getWriterは、ファイルをダウンロードする際に使うレスリング.get OutputStream()と競合します。以下のdocを見ます
[b]throws[/b] java.io.IOException
Returns a ServletOutputStream suitable [b]for[/b] writing binary data in the response. The servlet container does not encode the binary data.
[b][size=x-small;]Calling flush() on the ServletOutputStream commits the response.[/size][/b]
[b][size=x-small;] [/size][/b]
a ServletOutputStream [b]for[/b] writing binary data
IllegalStateException - [b]if[/b] the getWriter method has been called on [b]this[/b] response
See Also:
これで。すべて分かりました。よくサーバーの開発をしていると、よくわからないサーバーエラーが発生すると思います。サーバーを再起動したらまた消えました。あなたのプログラムにuncheckedの異常が発生した可能性があります。サーバーは異常処理をしています。予約行為があります。異常処理中に時又で新たなエラーが発生する可能性があります。これによってあなたの視線をサーバーに移動しました。エラーが発生しました。私たちは往々にしてこれらの間違いに対しては仕方がない。この時、あなたのコードが間違っている行を追跡してもいいです。異常を捕獲するjavaコード
このようなコードがあります。
finally{
}
ここでは、Jspで使用されているオブジェクトをリリースして、レスポンス.getWriterを呼び出します。
jsp内のスペースとエコーマークを全部削除します。
そして私の前のエラースタックを見ました。
at org.apache.catalina.connector.Response.getWriter(Response.java:604)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:186)
at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:77)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
[/size]