0

我有一个使用 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 参数需要更改?

4

1 回答 1

0

我会说你的休息参数有问题。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
于 2016-03-22T05:09:40.067 回答