java.lang.IllegalStateException:在jsp

时间:2018-05-25 11:46:28

标签: java jsp pdf

"我得到了java.lang.IllegalStateException:已经为此响应调用了getOutputStream()'例外。 "

我想打印所有用户属于classxxx的证书。 假设classxxx有4个用户,那么所有4个用户的证书应该逐个打印。

但我的代码仅打印第一个用户的证书。

这是我的代码。

String type = "certification";
List<LBUser> classRoster = null;
classRoster = LBUser.getClassRoster(classId,true,false,false);
//Here i get list of users

if(classRoster != null && classRoster.size() > 0) {
for(LBUser user : classRoster) {

if ("certification".equals(type)){%>
<%@ include file="certificate_certification.jsp" %>
<%} %>
<%

ByteArrayOutputStream buffer = new ByteArrayOutputStream();

try { 
Document document = new Document(PageSize.LETTER.rotate());
PdfWriter writer = PdfWriter.getInstance(document, buffer);
writer.setPdfVersion(PdfWriter.VERSION_1_6); 

document.open();
PdfContentByte over = writer.getDirectContent();
PdfContentByte under = writer.getDirectContentUnder();

//Some image related and Pdf related code

document.close(); 

DataOutput dataOutput = new DataOutputStream(response.getOutputStream());
//response.getOutputStream().... Here am getting same object
byte[] bytes = buffer.toByteArray();
response.setContentLength(bytes.length);
for(int i = 0; i < bytes.length; i++)
{
    dataOutput.writeByte(bytes[i]);
}

}catch(Exception e){
    e.printStackTrace();
}finally{
    try{
        if(buffer != null){
            buffer.close();
            buffer = null;
        }
    }catch(IOException e){
        buffer = null;
    }       
}
} // classRoster forloop closed

&#34;谷歌已经出现了这个错误,我按照所有步骤进行了操作,但没有一个有效。&#34;

感谢。

0 个答案:

没有答案