Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.io.IOException:主机中的软件中止了已建立的连接_Java_Websocket_Atmosphere - Fatal编程技术网

java.io.IOException:主机中的软件中止了已建立的连接

java.io.IOException:主机中的软件中止了已建立的连接,java,websocket,atmosphere,Java,Websocket,Atmosphere,我使用wAsync库、Websocket协议和Atmosphere发送请求,方法如下: 以下是我实施的: try { AtmosphereClient client = ClientFactory.getDefault().newClient(AtmosphereClient.class); RequestBuilder<?> requestBuilder = client.newRequestBuilder(

我使用wAsync库、Websocket协议和Atmosphere发送请求,方法如下:

以下是我实施的:

    try
    {
        AtmosphereClient client = ClientFactory.getDefault().newClient(AtmosphereClient.class);
        RequestBuilder<?> requestBuilder =
            client.newRequestBuilder()
                .method(Request.METHOD.GET)
                .uri(url)
                .trackMessageLength(false)
                .transport(Request.TRANSPORT.WEBSOCKET)        // Try Websocket.
                .transport(Request.TRANSPORT.LONG_POLLING);    // Fall back to Long pooling.

        final Socket socket = client.create();
        socket.open(requestBuilder.build()).fire(pMessage);
        socket.close();
    }
    catch (Exception e)
    {
    }
try-catch块无法捕获此错误

如果删除
socket.close()
,则不会发生此错误

有人知道为什么吗?我应该如何解决这个问题?或者有没有办法捕捉到这个异常

提前谢谢

*****************更新**********************

这个插座需要关上


在fire操作完成时,我是否可以调用回调方法?

因此,在操作完成之前不要调用
close()
。嗨,霍尔格,我怎么知道操作何时完成?没有回调。使用
fire(…)
返回的
Future
如何?我尝试使用Future.get()等待计算完成,但错误仍然时不时发生,因此在操作完成之前不要调用
close()
。你好,霍尔格,我如何知道操作何时完成?此操作没有回调。使用
fire(…)
返回的
Future
如何?我尝试使用Future.get()等待计算完成,但错误仍不时发生
15:11:36,467 ERROR [org.atmosphere.container.JSR356Endpoint] (http-localhost/127.0.0.1:8080-79) : java.io.IOException: An established connection was aborted by the software in your host machine
    at sun.nio.ch.WindowsAsynchronousSocketChannelImpl.write0(Native Method) [rt.jar:1.7.0_76]
    at sun.nio.ch.WindowsAsynchronousSocketChannelImpl.access$900(WindowsAsynchronousSocketChannelImpl.java:43) [rt.jar:1.7.0_76]
    at sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.run(WindowsAsynchronousSocketChannelImpl.java:777) [rt.jar:1.7.0_76]
    at sun.nio.ch.WindowsAsynchronousSocketChannelImpl.implWrite(WindowsAsynchronousSocketChannelImpl.java:914) [rt.jar:1.7.0_76]
    at sun.nio.ch.AsynchronousSocketChannelImpl.write(AsynchronousSocketChannelImpl.java:381) [rt.jar:1.7.0_76]
    at sun.nio.ch.AsynchronousSocketChannelImpl.write(AsynchronousSocketChannelImpl.java:398) [rt.jar:1.7.0_76]
    at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:978) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
    at org.apache.coyote.http11.InternalNioOutputBuffer$1.completed(InternalNioOutputBuffer.java:231) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
    at org.apache.coyote.http11.InternalNioOutputBuffer$1.completed(InternalNioOutputBuffer.java:200) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
    at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126) [rt.jar:1.7.0_76]
    at sun.nio.ch.Invoker$2.run(Invoker.java:218) [rt.jar:1.7.0_76]
    at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112) [rt.jar:1.7.0_76]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_76]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_76]
    at org.apache.tomcat.util.net.NioEndpoint$DefaultThreadFactory$1$1.run(NioEndpoint.java:1249) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_76]

15:11:36,469 ERROR [org.atmosphere.container.JSR356Endpoint] (http-localhost/127.0.0.1:8080-79) : java.io.IOException: An established connection was aborted by the software in your host machine
    at sun.nio.ch.WindowsAsynchronousSocketChannelImpl.write0(Native Method) [rt.jar:1.7.0_76]
    at sun.nio.ch.WindowsAsynchronousSocketChannelImpl.access$900(WindowsAsynchronousSocketChannelImpl.java:43) [rt.jar:1.7.0_76]
    at sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.run(WindowsAsynchronousSocketChannelImpl.java:777) [rt.jar:1.7.0_76]
    at sun.nio.ch.WindowsAsynchronousSocketChannelImpl.implWrite(WindowsAsynchronousSocketChannelImpl.java:914) [rt.jar:1.7.0_76]
    at sun.nio.ch.AsynchronousSocketChannelImpl.write(AsynchronousSocketChannelImpl.java:381) [rt.jar:1.7.0_76]
    at sun.nio.ch.AsynchronousSocketChannelImpl.write(AsynchronousSocketChannelImpl.java:398) [rt.jar:1.7.0_76]
    at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:978) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
    at org.apache.coyote.http11.InternalNioOutputBuffer$1.completed(InternalNioOutputBuffer.java:231) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
    at org.apache.coyote.http11.InternalNioOutputBuffer$1.completed(InternalNioOutputBuffer.java:200) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
    at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126) [rt.jar:1.7.0_76]
    at sun.nio.ch.Invoker$2.run(Invoker.java:218) [rt.jar:1.7.0_76]
    at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112) [rt.jar:1.7.0_76]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_76]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_76]
    at org.apache.tomcat.util.net.NioEndpoint$DefaultThreadFactory$1$1.run(NioEndpoint.java:1249) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_76]