axis2生成的webservice类,出现错误无法重新处理

zpingy 2018-01-10 08:42:25
现象:
类为axis2生成的存根类。
多线程频繁循环调用某个方法获取状态,一个线程报异常后无法循环重新读取状态值,显示异常见后;另外一个线程仍然可以正常调用此方法获取状态。请问大家遇到过这一的情况吗?有什么解决的方法。
org.apache.axis2.AxisFault: com.ctc.wstx.exc.WstxIOException: Attempted read on closed stream.
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:122)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:66)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:347)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:414)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:225)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:150)
at com.kcsm.pms.wcs.bis.atis4axis2kczn.AMWHCIWebServiceCLStub.getContainerByID(AMWHCIWebServiceCLStub.java:3561)
at com.kcsm.pms.wcs.bis.imp.Atis4Bis.getContainerById(Atis4Bis.java:246)
at com.kcsm.pms.wcs.service.imp.Atis4ServiceImp.executeJobToCheckPointStart(Atis4ServiceImp.java:244)
at com.kcsm.pms.wcs.service.imp.JobExecutingService.executeJobBeforeStartAtis4(JobExecutingService.java:738)
at com.kcsm.pms.wcs.service.imp.JobExecutingService.jobExecuting(JobExecutingService.java:186)
at com.kcsm.pms.wcs.service.imp.JobExecutingService.jobExecuting(JobExecutingService.java:120)
at com.kcsm.pms.wcs.service.imp.JobExecutingRunner.run(JobExecutingRunner.java:47)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxIOException: Attempted read on closed stream.
at org.apache.axiom.om.impl.common.factory.AbstractOMMetaFactory.createXMLStreamReader(AbstractOMMetaFactory.java:142)
at org.apache.axiom.om.impl.common.factory.AbstractOMMetaFactory.createSOAPModelBuilder(AbstractOMMetaFactory.java:228)
at org.apache.axiom.om.OMXMLBuilderFactory.createSOAPModelBuilder(OMXMLBuilderFactory.java:542)
at org.apache.axiom.om.OMXMLBuilderFactory.createSOAPModelBuilder(OMXMLBuilderFactory.java:521)
at org.apache.axis2.builder.SOAPBuilder.processDocument(SOAPBuilder.java:51)
at org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:203)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:144)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:107)
... 15 more
Caused by: com.ctc.wstx.exc.WstxIOException: Attempted read on closed stream.
at com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:536)
at com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:585)
at com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:610)
at com.ctc.wstx.stax.WstxInputFactory.createXMLStreamReader(WstxInputFactory.java:316)
at org.apache.axiom.util.stax.wrapper.XMLInputFactoryWrapper.createXMLStreamReader(XMLInputFactoryWrapper.java:95)
at org.apache.axiom.util.stax.wrapper.WrappingXMLInputFactory.createXMLStreamReader(WrappingXMLInputFactory.java:116)
at org.apache.axiom.util.stax.wrapper.XMLInputFactoryWrapper.createXMLStreamReader(XMLInputFactoryWrapper.java:95)
at org.apache.axiom.util.stax.wrapper.WrappingXMLInputFactory.createXMLStreamReader(WrappingXMLInputFactory.java:116)
at org.apache.axiom.util.stax.wrapper.XMLInputFactoryWrapper.createXMLStreamReader(XMLInputFactoryWrapper.java:95)
at org.apache.axiom.om.util.StAXUtils.createXMLStreamReader(StAXUtils.java:192)
at org.apache.axiom.om.impl.common.factory.AbstractOMMetaFactory.createXMLStreamReader(AbstractOMMetaFactory.java:113)
... 22 more
Caused by: java.io.IOException: Attempted read on closed stream.
at org.apache.commons.httpclient.AutoCloseInputStream.isReadAllowed(AutoCloseInputStream.java:183)
at org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:107)
at java.io.FilterInputStream.read(Unknown Source)
at org.apache.axiom.om.util.DetachableInputStream.read(DetachableInputStream.java:147)
at org.apache.axiom.om.impl.common.factory.DetachableInputStream.read(DetachableInputStream.java:48)
at com.ctc.wstx.io.BaseReader.readBytes(BaseReader.java:155)
at com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:368)
at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:111)
at com.ctc.wstx.io.ReaderBootstrapper.initialLoad(ReaderBootstrapper.java:250)
at com.ctc.wstx.io.ReaderBootstrapper.bootstrapInput(ReaderBootstrapper.java:133)
at com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:531)
... 32 more
...全文
469 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianfang 2018-01-12
  • 打赏
  • 举报
回复 1
axis2的客户端官方承认不是线程安全的 https://issues.apache.org/jira/browse/AXIS2-4357 最后一个回复 解决方法: 试试用cxf做客户端 http://cxf.apache.org/faq.html#FAQ-AreJAX-WSclientproxiesthreadsafe?

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧