Stream closed异常

我有两个方法,分别解析两段接收到的xml,我确定两个方法的参数request是不一样的。方法1可正确执行,方法2报错Streamclosed。我把inputStream.close()和inputStream=null注释掉还是一样。方法如下,
方法1:
publicstaticMapparseXml(HttpServletRequestrequest)throwsException{
//将解析结果存储在HashMap中
Mapmap=newHashMap();
//从request中取得输入流
InputStreaminputStream=request.getInputStream();
//读取输入流
SAXReaderreader=newSAXReader();
Documentdocument=reader.read(inputStream);
...
//释放资源
inputStream.close();
inputStream=null;
returnmap;
}
方法2:
publicstaticvoidparseScanXml(HttpServletRequestrequest)throwsException{
//从request中取得输入流
InputStreaminputStream=request.getInputStream();
//读取输入流
SAXReaderreader=newSAXReader();
Documentdocument=reader.read(inputStream);
//得到xml根元素
Elementroot=document.getRootElement();
...
inputStream.close();
inputStream=null;
}
九州编程
浏览 2762回答 2
2回答

慕少森

request的inputstream只能被读取一次。你这是在什么环境下用的?struts2?springmvc?servlet?要在框架的合适位置中处理。而且http是基于TCP的,有数据分片问题,最好是先全部读出,确认读完整之后再发给SAX读取器,否则可能会因为未读完整导致处理失败。

UYOU

嗨,楼主你好,不知道你还能看到回复不,我也遇到了一样的问题,不知道楼主解决了没有?我在一个服务器用是好的,放到另外一个服务器上就出现了这问题,找了很多没找到解决办法……
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript