プッシュメカニズムにDWRを使用するWebアプリケーションを開発しています。PrintWriterのクラスがHttpServletResponseエラーで設定されているのを確認しました。ロジック:dwrのカスタムフラッシュメソッド:
PrintWriter out = reponse.getWriter();
public boolean flush(){
out.flush();
if(out.checkError()){
/ *応答の送信中にエラーが発生したため、次のプッシュで応答を再送信します* /
falseを返します。
}
/*応答は正常に送信されました*/
trueを返します。
}
奇妙なことに、エラーのあるPrintWriterはクライアント側に応答を正常に送信しますが、上記のコードではout.checkError()がtrueを返すため、応答はクライアントに再送されます。
さらに観察すると、この種の不正行為が存在するたびに次のステートメントがログに記録されることがわかりました。WARN:oejh.HttpGenerator:余分なコンテンツを無視する
これはブラウザの種類に依存し、これはChrome、Firefoxで発生しており、Opera、IEでは発生していません。
- これ(HttpGenerator:余分なコンテンツを無視する)はPrintWriterに何かを更新しますか?
- PrintWriterがエラーフラグを設定するとき?
- ブラウザはこの種の応答にどのように応答しますか(HttpGenerator:余分なコンテンツを無視します)?
サーバー:jetty-7.6.3 DWR:dwr-3.0.0-RC3-dev-425