java io closed_java.io.IOException: Stream closed 异常的原因和处理
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 异常的原因和处理相关推荐
- 造成java.io.IOException: Stream Closed异常的代码
造成java.io.IOException: Stream Closed异常的代码 参考文章: (1)造成java.io.IOException: Stream Closed异常的代码 (2)http ...
- SpringBoot 项目上传文件异常【java.io.IOException: Stream closed】
项目场景: 提示:这里简述项目相关背景: 项目场景:SpringBoot 项目上传文件接口异常 21 十二月 2022 13:30:53,132 36991 [http-nio-9220-exec-3 ...
- java stream closed_java.io.IOException: Stream closed
elseif(e.getActionCommand().equals("save")){JFileChooserfileChooser=newJFileChooser();file ...
- Safe handle has been closed异常的原因及解决思路
Safe handle has been closed异常的原因及解决思路 参考文章: (1)Safe handle has been closed异常的原因及解决思路 (2)https://www. ...
- java.io.IOException: Stream closed
今天在做SSH项目的时候,出现了这个错误.百思不得其解,网上的答案都不能解决我的问题-.. 后来,一气之下就重新写,写了之后发现在JSP遍历集合的时候出错了. <s:iterator value ...
- 关闭流时,抛出异常:java.io.IOException: Stream Closed
首先,这个异常大部分原因是因为关闭流的顺序导致的,下面看一下官方API的描述 void close()throws IOExceptionCloses this stream and releases ...
- java多线程运行结果写入文件错误java.io.IOException: Stream closed
今天在写多线程程序的时候,需要将每个线程运行的结果写入同一个文件,用的是FileWriter,最后在关闭写入流的时候出现如下问题: java.io.IOException: Stream closed ...
- Java进阶(八)Stream、异常体系
八.Stream.异常体系 需要学会什么? 不可变集合:有些业务场景下需要有不可变集合对象,Java如何得到不可变集合对象. Stream流:集合自己提供的API非常繁琐.JDK8开始,得益于Lamb ...
- Java 集合中遍历删除元素抛异常的原因,从ArrayList说起
文章目录 使用for删除遗漏元素的原因: 使用foreach删除报错的原因: 其它集合的删除方法 删除集合元素的工具类 ArrayList删除元素的方式. 使用for循环删除.会遗漏删除的元素 使用f ...
- java(File、IO流)
IO流 一.IO流和File类 二 .File类 绝对路径和相对路径 file的成员方法 file的创建方法 file的删除方法 file的判断和获取功能 高级获取方法listFiles() file ...
最新文章
- Python3.5源码分析-垃圾回收机制
- R语言常用线性模型特征筛选(feature selection)技术实战:基于前列腺特异性抗原(PSA)数据
- 【OpenCV学习】抠图
- RBF网络——核心思想:把向量从低维m映射到高维P,低维线性不可分的情况到高维就线性可分了...
- 关于Ubuntu运行级别、开机启动脚本的说明
- java类多例_Java多例设计模式实例详解
- C语言数据结构(大话数据结构——笔记3)第五章:串(字符串)
- STM32F4 HAL库开发 --时钟使能和配置
- mysql job_MySQL数据传输中dtle 之 job 实现简析-爱可生
- 数组---进制转换(查表法)
- jq 自动打开浏览器_jQuery之解析判断当前页面打开端(APP或浏览器)的方法
- VMware Workstation Pro 虚拟机做RAID
- mac迅雷精简版(迅雷Mac)简约瘦身版
- 反向代理分离资源服务器分析
- 服务器sas硬盘转sata硬盘6,SAS接口(sas硬盘改sata家用)
- 星星之火OIer:TunaParetoUnija
- Pyramidal Feature Shrinking for Salient Object Detection
- linux下载blast软件
- android 9平板电脑截屏,平板电脑怎么截图 平板电脑截图方法【详解】
- ImportError: libopencv_imgcodecs.so.4.3: cannot open shared object file: No such file or directory报错