【问题标题】:org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker terminated abnormallyorg.apache.http.nio.reactor.IOReactorException: I/O dispatch worker 异常终止
【发布时间】:2016-03-17 07:14:12
【问题描述】:

我有一个使用 apache HttpAsyncClient 的服务。 (版本:httpasyncclient-4.0.2.jar、httpcore-4.4.3.jar、httpcore-nio-4.3.3.jar)

所有请求在启动异步客户端后的一段时间内开始失败,并出现以下初始异常 -

[#|2016-03-16T22:31:59.376-0700|SEVERE|glassfish3.1.2|org.apache.http.impl.nio.client.InternalHttpAsyncClient|_ThreadID=564;_ThreadName=Thread-6;|I/O reactor terminated abnormally
org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker terminated abnormally
        at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:357)
        at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:189)
        at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase.doExecute(CloseableHttpAsyncClientBase.java:67)
        at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase.access$000(CloseableHttpAsyncClientBase.java:38)
        at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:57)
        at java.lang.Thread.run(Unknown Source)
Caused by: RestException(statusCode=500, code=null, message=I/O operation failed, developerMessage=RestException(statusCode=500, code=null, message=I/O operation failed, developerMessage=null)
        at com.notificationservice.analytics.client.AsyncResponse$2.failed(AsyncResponse.java:178)
        at org.apache.http.concurrent.BasicFuture.failed(BasicFuture.java:134)
        at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.failed(DefaultClientExchangeHandlerImpl.java:258)
        at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.exception(HttpAsyncRequestExecutor.java:127)
        at org.apache.http.impl.nio.client.InternalIODispatch.onException(InternalIODispatch.java:68)
        at org.apache.http.impl.nio.client.InternalIODispatch.onException(InternalIODispatch.java:37)
        at org.apache.http.impl.nio.reactor.AbstractIODispatch.outputReady(AbstractIODispatch.java:154)
        at org.apache.http.impl.nio.reactor.BaseIOReactor.writable(BaseIOReactor.java:180)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:342)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:316)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:277)
        at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:105)
        at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:586)
        at java.lang.Thread.run(Unknown Source)
)
        at com.notificationservice.client.AsyncResponse$2.failed(AsyncResponse.java:178)
        at org.apache.http.concurrent.BasicFuture.failed(BasicFuture.java:134)
        at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.failed(DefaultClientExchangeHandlerImpl.java:258)
        at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.exception(HttpAsyncRequestExecutor.java:127)
        at org.apache.http.impl.nio.client.InternalIODispatch.onException(InternalIODispatch.java:68)
        at org.apache.http.impl.nio.client.InternalIODispatch.onException(InternalIODispatch.java:37)
        at org.apache.http.impl.nio.reactor.AbstractIODispatch.outputReady(AbstractIODispatch.java:154)
        at org.apache.http.impl.nio.reactor.BaseIOReactor.writable(BaseIOReactor.java:180)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:342)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:316)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:277)
        at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:105)
        at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:586)
        ... 1 more

新版本也会出现同样的问题 - httpasyncclient-4.1.1.jar、httpcore-4.4.4.jar、httpcore-nio-4.4.4.jar

任何见解都将受到高度赞赏。是否有一些 IOReactorConfig 参数需要更改?

【问题讨论】:

    标签: apache-httpcomponents apache-httpasyncclient


    【解决方案1】:

    我会说你的休息参数有问题。 StatusCode 500 来自服务器,因此您的请求将发送给它。

     Caused by: RestException(statusCode=500, code=null, message=I/O operation failed, developerMessage=RestException(statusCode=500, code=null, message=I/O operation failed, developerMessage=null
    

    【讨论】:

      猜你喜欢
      • 2013-01-07
      • 2011-12-29
      • 1970-01-01
      • 2017-08-22
      • 2013-10-03
      • 1970-01-01
      • 2012-09-14
      • 2015-01-17
      • 2012-11-25
      相关资源
      最近更新 更多