起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2126|回复: 3

[处理中3] java.lang.IllegalStateException: getOutputStream() has already been called fo...

[复制链接]

47

主题

152

帖子

428

积分

中级会员

Rank: 3Rank: 3

积分
428
QQ
发表于 2018-11-15 15:49:56 | 显示全部楼层 |阅读模式
本帖最后由 小二 于 2018-11-16 13:44 编辑

我是直接在浏览器地址栏中调用的这个方法;response的的输出被重复调用导致资源占用,请问x5后台的输出流怎么关闭?找不到该对象
  1. HttpServletResponse response=(HttpServletResponse) context.get(ActionContext.RESPONSE);
  2.                 downloadLocal(response);
  3.                  // 下载本地文件
  4.         String fileName = "photo.zip".toString(); // 文件的默认保存名
  5.         // 读到流中
  6.         InputStream inStream = new FileInputStream("F:/mytest03.zip");// 文件的存放路径
  7.         // 设置输出的格式
  8.         response.reset();
  9.         response.setContentType("bin");
  10.         response.addHeader("Content-Disposition", "attachment; filename="" + fileName + """);
  11.         // 循环取出流中的数据
  12.         byte[] b = new byte[100];
  13.         int len;
  14.         try {
  15.                 ServletOutputStream sos = response.getOutputStream();
  16.             while ((len = inStream.read(b)) > 0){
  17.                     sos.write(b, 0, len);
  18.             }
  19.             inStream.close();
  20.             sos.close();
  21.         } catch (IOException e) {
  22.             e.printStackTrace();
  23.         }
复制代码


47

主题

152

帖子

428

积分

中级会员

Rank: 3Rank: 3

积分
428
QQ
 楼主| 发表于 2018-11-15 15:50:40 | 显示全部楼层
  1. 严重: Servlet.service() for servlet WeX5_Baas_Servlet threw exception
  2. java.lang.IllegalStateException: getOutputStream() has already been called for this response
  3.         at org.apache.catalina.connector.Response.getWriter(Response.java:611)
  4.         at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198)
  5.         at com.justep.baas.data.DataUtils.writeJsonToResponse(Unknown Source)
  6.         at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
  7.         at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
  8.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  9.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  10.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  11.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  12.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  13.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  14.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  15.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  16.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  17.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
  18.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  19.         at java.lang.Thread.run(Thread.java:745)
复制代码
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2018-11-29 10:20:42 | 显示全部楼层
sos 关闭之前,按https://blog.csdn.net/xyajia/article/details/78730751中的方法处理看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

47

主题

152

帖子

428

积分

中级会员

Rank: 3Rank: 3

积分
428
QQ
 楼主| 发表于 2018-12-10 09:20:00 | 显示全部楼层
本帖最后由 小二 于 2018-12-10 09:23 编辑

这个方法是需要在jsp页面调用的,直接写在x5的java中就会内置到jsp页面吧?我直接替换javax.servlet的jar就行了吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-22 00:08 , Processed in 0.076599 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表