java.io.IOException: Stream closed

多个线程索引同一个inputstream,当某一个thread在执行完之后,把这个inputstream关闭了;而此时正在从这个inputstream流中读取信息的线程就会抛出java.io.IOException:Streamclosed异常。终于找到这个异常的根源所在,原来是两个页面同时调用一个jsp,这个jsp中的内建对象out在执行out.close()时发生的异常,也就是当某一个thread(对应一个jsp)在执行完之后,把这个stream关闭了;而此时正在从这个stream中读取信息的另一个jsp就会抛出java.io.IOException:Streamclosed异常。

修改前代码:public Object sendData(String jsonStr) {

// 1. 指定WebService的命名空间和调用的方法名

SoapObject rpc = new SoapObject(NAMESPACE, methodName);

// 2. 设置调用方法的参数值,这一步是可选的,如果方法没有参数,可以省略这一步

rpc.addProperty("arg000", jsonStr);

// 3. 生成调用WebService方法的SOAP请求信息。

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(

SoapEnvelope.VER11);

envelope.encodingStyle = "UTF-8";

envelope.bodyOut = rpc;

// envelope.setOutputSoapObject(rpc);

// 4.

// 创建HttpTransportSE对象。通过HttpTransportSE类的构造方法可以指定WebService的WSDL文档的URL

HttpTransportSE ht = new HttpTransportSE(URL);

ht.debug = true;

Object detail1 = null;

try {

// 5. 使用call方法调用WebService方法

ht.call(null, envelope);

// detail = (SoapObject) envelope.getResponse();

// 6. 使用getResponse方法获得WebService方法的返回结果

detail1 = envelope.getResponse();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (XmlPullParserException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return detail1;

}

修改后代码:public Object sendData(String jsonStr) {

// 1. 指定WebService的命名空间和调用的方法名

SoapObject rpc = new SoapObject(NAMESPACE, methodName);

// 2. 设置调用方法的参数值,这一步是可选的,如果方法没有参数,可以省略这一步

rpc.addProperty("arg000", jsonStr);

// 3. 生成调用WebService方法的SOAP请求信息。

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(

SoapEnvelope.VER11);

envelope.encodingStyle = "UTF-8";

envelope.bodyOut = rpc;

// envelope.setOutputSoapObject(rpc);

// 4.

// 创建HttpTransportSE对象。通过HttpTransportSE类的构造方法可以指定WebService的WSDL文档的URL

HttpTransportSE ht = new HttpTransportSE(URL);

ht.debug = true;

Object detail1 = null;

try {

// 5. 使用call方法调用WebService方法

ht.call(null, envelope);

// detail = (SoapObject) envelope.getResponse();

// 6. 使用getResponse方法获得WebService方法的返回结果

detail1 = envelope.getResponse();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println(new java.util.Date() + "IOException, resend the data");

try {

// 5. 使用call方法调用WebService方法

ht.call(null, envelope);

// detail = (SoapObject) envelope.getResponse();

// 6. 使用getResponse方法获得WebService方法的返回结果

detail1 = envelope.getResponse();

} catch (IOException e1) {

// TODO 自动生成的 catch 块

e1.printStackTrace();

} catch (XmlPullParserException e1) {

// TODO 自动生成的 catch 块

e1.printStackTrace();

}

} catch (XmlPullParserException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return detail1;

}

java io closed_java.io.IOException: Stream closed 异常的原因和处理相关推荐

  1. 造成java.io.IOException: Stream Closed异常的代码

    造成java.io.IOException: Stream Closed异常的代码 参考文章: (1)造成java.io.IOException: Stream Closed异常的代码 (2)http ...

  2. SpringBoot 项目上传文件异常【java.io.IOException: Stream closed】

    项目场景: 提示:这里简述项目相关背景: 项目场景:SpringBoot 项目上传文件接口异常 21 十二月 2022 13:30:53,132 36991 [http-nio-9220-exec-3 ...

  3. java stream closed_java.io.IOException: Stream closed

    elseif(e.getActionCommand().equals("save")){JFileChooserfileChooser=newJFileChooser();file ...

  4. Safe handle has been closed异常的原因及解决思路

    Safe handle has been closed异常的原因及解决思路 参考文章: (1)Safe handle has been closed异常的原因及解决思路 (2)https://www. ...

  5. java.io.IOException: Stream closed

    今天在做SSH项目的时候,出现了这个错误.百思不得其解,网上的答案都不能解决我的问题-.. 后来,一气之下就重新写,写了之后发现在JSP遍历集合的时候出错了. <s:iterator value ...

  6. 关闭流时,抛出异常:java.io.IOException: Stream Closed

    首先,这个异常大部分原因是因为关闭流的顺序导致的,下面看一下官方API的描述 void close()throws IOExceptionCloses this stream and releases ...

  7. java多线程运行结果写入文件错误java.io.IOException: Stream closed

    今天在写多线程程序的时候,需要将每个线程运行的结果写入同一个文件,用的是FileWriter,最后在关闭写入流的时候出现如下问题: java.io.IOException: Stream closed ...

  8. Java进阶(八)Stream、异常体系

    八.Stream.异常体系 需要学会什么? 不可变集合:有些业务场景下需要有不可变集合对象,Java如何得到不可变集合对象. Stream流:集合自己提供的API非常繁琐.JDK8开始,得益于Lamb ...

  9. Java 集合中遍历删除元素抛异常的原因,从ArrayList说起

    文章目录 使用for删除遗漏元素的原因: 使用foreach删除报错的原因: 其它集合的删除方法 删除集合元素的工具类 ArrayList删除元素的方式. 使用for循环删除.会遗漏删除的元素 使用f ...

  10. java(File、IO流)

    IO流 一.IO流和File类 二 .File类 绝对路径和相对路径 file的成员方法 file的创建方法 file的删除方法 file的判断和获取功能 高级获取方法listFiles() file ...

最新文章

  1. Python3.5源码分析-垃圾回收机制
  2. R语言常用线性模型特征筛选(feature selection)技术实战:基于前列腺特异性抗原(PSA)数据
  3. 【OpenCV学习】抠图
  4. RBF网络——核心思想:把向量从低维m映射到高维P,低维线性不可分的情况到高维就线性可分了...
  5. 关于Ubuntu运行级别、开机启动脚本的说明
  6. java类多例_Java多例设计模式实例详解
  7. C语言数据结构(大话数据结构——笔记3)第五章:串(字符串)
  8. STM32F4 HAL库开发 --时钟使能和配置
  9. mysql job_MySQL数据传输中dtle 之 job 实现简析-爱可生
  10. 数组---进制转换(查表法)
  11. jq 自动打开浏览器_jQuery之解析判断当前页面打开端(APP或浏览器)的方法
  12. VMware Workstation Pro 虚拟机做RAID
  13. mac迅雷精简版(迅雷Mac)简约瘦身版
  14. 反向代理分离资源服务器分析
  15. 服务器sas硬盘转sata硬盘6,SAS接口(sas硬盘改sata家用)
  16. 星星之火OIer:TunaParetoUnija
  17. Pyramidal Feature Shrinking for Salient Object Detection
  18. linux下载blast软件
  19. android 9平板电脑截屏,平板电脑怎么截图 平板电脑截图方法【详解】
  20. ImportError: libopencv_imgcodecs.so.4.3: cannot open shared object file: No such file or directory报错

热门文章

  1. 腾讯的职级系统——看清自己的职场宿命
  2. http接口公网对接时用到的RSA加密/解密实现示例
  3. html5 canvas 一个漫天飞雪的效果
  4. stm32 HAL 重映射
  5. 如何拯救你,我的Oculus?
  6. 华乾服显示无法连接服务器,唯满侠战火纷飞,飞龙休闲养老,剑网三各服务器缘何天差地别...
  7. 什么叫做罗列式_申论作文写作之案例罗列式开头
  8. Django3.0使用-国际化语言
  9. 【补码表示】为什么定点小数的-1补码表示为1.0000以及补码表示范围问题
  10. MDM数据血缘设计方案