HI,java.nio.channels.ClosedChannelException - 客户端关闭SSL
我glassfish3.1服务器上运行一个机器上的web服务。
在第二台机器上,我有一个java(GUI)应用程序,正在运行并调用上述Web服务。
在我的web服务调用中,我发送一个文件作为SOAP附件。它到达服务器,然后处理文件,然后通过https返回到我的客户机。
如果我的文件过大,时间超过15分钟时,操作失败,并且我收到以下错误:
在客户端: 无法因异常创建SOAP消息:org.jvnet .mimepull.MIMEParsingException:javax.net.ssl.SSLException:SSL同行关闭错误
在服务器端: javax.servlet.ServletException 在org.glassfish.webservices.JAXWSServlet.doPost(JAXWSServlet.java: 150) at javax.servlet.http.H ttpServlet.service(HttpServlet.java:755) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline。 doInvoke(StandardPipeline.java:655) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326) at org.apache.catalina.connector.CoyoteAdapter。服务(CoyoteAdapter.java:227) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java: 822) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013) at com.sun.grizzly。 http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 在com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 在com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 在com.sun.grizzly.http.HttpProtocolChain.execute( HttpProtocolChain.java:79) 在com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 在com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 在com.sun.grizzly。 ContextTask.run(ContextTask.java:71) at com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool $ Worker.run(AbstractThreadPool。 java:513) at java.lang.Thread.run(Thread.java:662) 导致:javax.xml.ws.WebServiceException:com.ctc.wstx.exc.WstxIOException:java.nio.channels。ClosedChannelException at com.sun.xml.ws.encoding.MtomCodec.encode(MtomCodec.java:184) at com.sun.xml.ws.encoding.SOAPBindingCodec.encode(SOAPBindingCodec.java:282) at com.sun .xml.ws.transport.http.HttpAdapter.encodePacket(HttpAdapter.java:400) at com.sun.xml.ws.transport.http.HttpAdapter.access $ 100(HttpAdapter.java:96) at com.sun。 xml.ws.transport.http.HttpAdapter $ HttpToolkit.handle(HttpAdapter.java:618) at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:259) at com.sun。 xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:162) at org.glassfish.webservices.JAXWSServlet.doPost(JAXWSServlet.java:145) ... 27更多 导致b y:com.ctc.wstx.exc.WstxIOException:java.nio.channels.ClosedChannelException at com.ctc.wstx.sw.BaseStreamWriter.flush(BaseStreamWriter.java:313) at com.sun.xml.ws.util .xml.XMLStreamWriterFilter.flush(XMLStreamWriterFilter.java:71) at com.sun.xml.ws.streaming.XMLStreamWriterUtil.getOutputStream(XMLStreamWriterUtil.java:101) at com.sun.xml.ws.message.jaxb.JAXBMessage .writePayloadTo(JAXBMessage.java:320) at com.sun.xml.ws.message.AbstractMessageImpl.writeTo(AbstractMessageImpl.java:147) at com.sun.xml.ws.encoding.MtomCodec.encode(MtomCodec.java :168) ... 34更多 引起:org.apache.catalina.connector.ClientAbortException:java.nio.channels.ClosedChannelException at org.apache.catalina.co (org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:351) at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:输出缓冲区。 175) at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:99) at com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:214) at com.ctc.wstx。在sun.nio.ch.SocketChannelImpl.ensureWriteOpen(SocketChannelImpl.java:133) 在太阳java.nio.channels.ClosedChannelException :sw.BaseStreamWriter.flush(BaseStreamWriter.java:311) ...... 39多个 引起.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:324) at com.sun.grizzly.util.OutputWriter.flushCh annel在(OutputWriter.java:108) 在com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:76) 在com.sun.grizzly.util.SSLOutputWriter.flushChannel(SSLOutputWriter.java:102) com.sun.grizzly.ssl.SSLOutputBuffer.flushChannel(SSLOutputBuffer.java:138) 在com.sun.grizzly.http.SocketChannelOutputBuffer.flushBuffer(SocketChannelOutputBuffer.java:398) 在com.sun.grizzly.http.SocketChannelOutputBuffer。 flush(SocketChannelOutputBuffer.java:376) at com.sun.grizzly.http.ProcessorTask.action(ProcessorTask.java:1241) at com.sun.grizzly.ssl.SSLProcessorTask.action(SSLProcessorTask.java:164) at com.un.grizzly.tcp.Response.action(Response.java:268) at org.apache.catalina.connector.OutputBuffe r.doFlush(输出
...
我认为SSL会话超时我的客户端,而不是在服务器端。
现在我试图找出一种方法来增加我的客户端,我想是15分钟的SSL超时...
我不能这样做,任何帮助将appriciated .. 。 谢谢
什么意思是SSL“会话”?这可能只是一个连接超时。你在客户端上用什么来提出请求? – Taylor 2011-05-19 17:06:13
我发现当尝试发送或接收SOAP消息太大时,会出现类似的错误(带和不带SSL)。除了削减我的要求之外,我从来没有真正得到过满意的解决方案。 – 2011-05-19 17:44:25
误导性标题。这里没有关于客户端关闭SSL的证据。其实它抱怨对方这样做不正确。 – EJP 2011-05-20 23:34:20