仅当使用CloseableHttpAsyncClient时才出现java.net.UnknownHostException

仅当使用CloseableHttpAsyncClient时才出现java.net.UnknownHostException,java,rest,spring-boot,apache-httpcomponents,Java,Rest,Spring Boot,Apache Httpcomponents,我使用SpringBoot构建了一个REST应用程序,该应用程序反过来调用另一个第三方RESTAPI。我试图将Apache的HTTPComponentsCloseableHttpAsyncClient与Spring的AsyncRestTemplate结合使用。以下是我在Spring Boot应用程序中设置AsyncRestTemplate的方法: @Bean public AsyncRestTemplate asyncRestTemplate() throws IOReactorExceptio

我使用SpringBoot构建了一个REST应用程序,该应用程序反过来调用另一个第三方RESTAPI。我试图将Apache的HTTPComponents
CloseableHttpAsyncClient
与Spring的
AsyncRestTemplate
结合使用。以下是我在Spring Boot应用程序中设置AsyncRestTemplate的方法:

@Bean
public AsyncRestTemplate asyncRestTemplate() throws IOReactorException {
    ConnectingIOReactor ioReactor = new DefaultConnectingIOReactor();
    PoolingNHttpClientConnectionManager cm =
        new PoolingNHttpClientConnectionManager(ioReactor);
    CloseableHttpAsyncClient client =
        HttpAsyncClients.custom().setConnectionManager(cm).build();
    client.start();
    return new AsyncRestTemplate(
        new HttpComponentsAsyncClientHttpRequestFactory(client));
}
调用第三方REST API端点的代码如下所示:

ListenableFuture<ResponseEntity<String>> restFuture =
    asyncRestTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class);
代码执行得很好。这是在Mac(OS X El Capitan)上。Spring引导版本为1.4.2、Java 8和HttpAsyncClient 4.1.2。我如何解决这个问题


注意:我将实际主机名替换为虚拟主机名(
api.3rdpartyservices.com
),因为我无法透露该信息。感谢@JimGarrison的评论,所以我可以向大家澄清这一点。

Host
api.3rdpartyservices.com
在这里没有解析?问题不是为什么一个方法失败,而是为什么一个方法没有失败。@JimGarrison我用一个虚拟主机名替换了实际主机名。对不起,我应该在我的问题中澄清这一点。希望这能解决您的评论。不要混淆对调试问题至关重要的信息。“如果你不能发布这些信息,那么请确保你已经解决了所有明显的问题,并在帖子中对此进行解释。”JimGarrison point指出。我确实在问题的最后补充了这个细节,所以希望它不会继续引起混乱。
java.net.UnknownHostException: <<api.3rdpartyservices.com>>
    at java.net.InetAddress.getAllByName0(InetAddress.java:1280) ~[na:1.8.0_112]
    at java.net.InetAddress.getAllByName(InetAddress.java:1192) ~[na:1.8.0_112]
    at java.net.InetAddress.getAllByName(InetAddress.java:1126) ~[na:1.8.0_112]
    at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalAddressResolver.resolveRemoteAddress(PoolingNHttpClientConnectionManager.java:609) ~[httpasyncclient-4.1.2.jar:4.1.2]
    at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalAddressResolver.resolveRemoteAddress(PoolingNHttpClientConnectionManager.java:580) ~[httpasyncclient-4.1.2.jar:4.1.2]
    at org.apache.http.nio.pool.AbstractNIOConnPool.processPendingRequest(AbstractNIOConnPool.java:427) ~[httpcore-nio-4.4.5.jar:4.4.5]
    at org.apache.http.nio.pool.AbstractNIOConnPool.lease(AbstractNIOConnPool.java:276) ~[httpcore-nio-4.4.5.jar:4.4.5]
    at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.requestConnection(PoolingNHttpClientConnectionManager.java:266) ~[httpasyncclient-4.1.2.jar:4.1.2]
    at org.apache.http.impl.nio.client.AbstractClientExchangeHandler.requestConnection(AbstractClientExchangeHandler.java:363) ~[httpasyncclient-4.1.2.jar:4.1.2]
    at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:125) ~[httpasyncclient-4.1.2.jar:4.1.2]
    at org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141) ~[httpasyncclient-4.1.2.jar:4.1.2]
    at org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:75) ~[httpasyncclient-4.1.2.jar:4.1.2]
    at org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:108) ~[httpasyncclient-4.1.2.jar:4.1.2]
    at org.springframework.http.client.HttpComponentsAsyncClientHttpRequest.executeInternal(HttpComponentsAsyncClientHttpRequest.java:96) ~[spring-web-4.3.4.RELEASE.jar:4.3.4.RELEASE]
@Bean
public AsyncRestTemplate asyncRestTemplate() throws IOReactorException {
return new AsyncRestTemplate(
    new HttpComponentsAsyncClientHttpRequestFactory());
}