2

プッシュメカニズムに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では発生していません。

  1. これ(HttpGenerator:余分なコンテンツを無視する)はPrintWriterに何かを更新しますか?
  2. PrintWriterがエラーフラグを設定するとき?
  3. ブラウザはこの種の応答にどのように応答しますか(HttpGenerator:余分なコンテンツを無視します)?

サーバー:jetty-7.6.3 DWR:dwr-3.0.0-RC3-dev-425

4

0 に答える 0