1

私はJSFとSpringでプロジェクトを作成していますが、その主な目的はブラウザーでPDFファイルを生成することです。すべてが正常に見え、PDFも生成されますが、コンソールでこの例外が発生します。これについて誰かが知っていますか?私は検索したところ、多くの人がその問題を抱えていることがわかりましたが、私の解決策は見つかりませんでした。

 SEVERE: Error Rendering View[/WebPages/SearchPages/index.xhtml]
    java.lang.IllegalStateException: PWC3991: getOutputStream() has already been called for this response

outputstreamオブジェクトの作成中にこのエラーが発生します

HTTPServletResponse response = (HTTPServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();

ServletOutputStream out = response.getOutputStream();

作成中やその他の理由で何か問題はありますか?どんな助けでも大いに感謝するでしょう

4

1 に答える 1

3

JSF に HTTP 応答を自分で完了したことを伝える必要があります。そうしないと、JSF はアクション メソッドが終了した後もデフォルトの RENDER_RESPONSE ジョブを実行し続けます。応答が既にコミットされているため、まさにこの例外が発生します。

FacesContext#responseComplete()これは、アクション メソッドを呼び出すことで実行できます。

応答完了

public abstract void responseComplete()

この要求に対する HTTP 応答 (HTTP リダイレクトなど) が既に生成されていること、および現在のフェーズが完了したらすぐに要求処理ライフサイクルを終了する必要があることを JavaServer Faces 実装に通知します。

以下も参照してください。

于 2012-09-19T12:43:51.610 に答える