java - java.lang.IllegalStateException: getOutputStream() 已在 jsp 中为此响应调用
问题描述
“我收到‘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
“这个错误已经出现在谷歌上,我遵循了所有步骤,但没有一个奏效。”
谢谢。
解决方案
推荐阅读
- python - Jupyter笔记本中python 3中标识符中的无效字符,箭头指向负号。我的清单中不能有否定词吗?
- javascript - 字母猜谜游戏,最终猜测后剩余的猜测不返回“0”?
- sql-server-2014 - 使用 LEAD 函数过滤到连续值的一个实例的连续行的日期差异
- javascript - React State 数据无法作为道具传递
- string - Pandas:打印“匹配”而不是仅打印布尔结果
- lambda - Kotlin 中奇怪的 lambda
- xml - XSLT 属性字符串测试
- dart - 使用 dart 或/和 AngularDart 实现质量和完整的 PWA(渐进式 Web 应用程序)
- html - 剥离除以 http 开头的所有标签
- python - 如何判断牛顿法是否失败