我正在尝试将大型XML文件(超过1.5M)写入ServletOutputStream,这需要很长时间,接近7分钟左右甚至更长时间。
我正在做的事情如下 -
1. SOAPMessage soapRes; // Consider this is populated somewhere and we have the value here
2. ServletResponse res; // Consider this is populated somewhere and we have the value here
3. ServletOutputStream os = res.getOutputStream();
4. ByteArrayOutputStream baos = new ByteArrayOutputStream();
5. soapRes.writeTo(baos);
6. os.write(baos.toByteArray());
在最后 -
7. baos.close();
8. os.flush();
9. os.clse();
我考虑了ServletOutputStream
的子类并覆盖了write()
但由于第3行的类别转换问题而无法解决问题。
我还尝试从SOAPMessage
中提取内容的长度,并在第{6行的write()
方法中传递该值,甚至作为ByteArrayOutputStream
第4行的构造函数参数但没有工作。
任何建议都是最受欢迎的。
NB。忘了早点提到这个,我在Apache Tomcat上运行它。 JUnit测试没有这样的问题,使用它这个处理非常快并且在几秒内完成但是当我在Tomcat上运行时需要很长时间。
答案 0 :(得分:0)
如问题评论中所述,找到了答案 问题是客户端(TCPMon)而不是代码。