0

Web アプリケーションで struts2 を使用しています。jspでpdfストリームをレンダリングしたい。私は現在これをやっています:

public String renderPDF() throws Exception
{
     myService.rederPDF(getServletResponse().getServletOutputStream());
     return SUCCESS;
}

myService の rederPDF メソッドは、pdf ストリームを取得し、サーブレット応答出力ストリームに書き込みます。しかし、これは「応答は既にコミットされています」という例外をスローします。

4

1 に答える 1

0

この例外は、転送する前にクライアントに何かを送信した場合に発生します。

ファイルのダウンロードにサーブレットを使用しています。見てください。

public class FileDownloadServlet extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    byte[] b = null;
    ServletOutputStream sop = null;

    try {
        response.setContentType("application/pdf");
        response.setHeader("Content-Disposition","attachment; filename=yourFileName.pdf");          

        sop = response.getOutputStream();
        b =  myService.getFileData(); /* your code */
        sop.write(b);    
        return;         
    } catch (Exception e) { 
        /* some code*/
    }
    finally{ 
        /* some code*/
    }
}
}
于 2012-05-16T07:35:19.407 に答える