我正在尝试使用vertx和rx java来使用REST API,下面是我的代码
public static void main(String[] args) {
Single<HttpResponse<Buffer>> single = new ITAPILanguagesImpl().getLanguages();
single.subscribe(response -> {
System.out.println("Received 1st response with status code" + response.statusCode());
}, error -> {
System.out.println("Something went wrong " + error.getMessage());
});
}
主要类中的订阅者代码是
Jun 06, 2017 9:48:32 PM io.netty.resolver.dns.DnsNameResolver trySuccess
Something went wrong Network is unreachable: no further information: time.jsontest.com/2404:6800:4007:807:0:0:0:2013:80
WARNING: Failed to notify success (time.jsontest.com/2404:6800:4007:807:0:0:0:2013) to a promise: DefaultPromise@5dcb32d8(success: time.jsontest.com/2404:6800:4007:807:0:0:0:2013)
当我运行main方法时,我收到以下错误
<dependency>
<groupId>io.reactivex.rxjava2</groupId>
<artifactId>rxjava</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web-client</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-rx-java</artifactId>
<version>3.4.1</version>
</dependency>
我检查了网址并且工作正常,只有当我使用vertx webclient连接到此网址时,我才会收到此错误,我错过了什么? 我在pom文件中添加了以下工件作为依赖项。
false
谢谢!
答案 0 :(得分:2)
它看起来像是您环境中的DNS问题。
尝试通过在命令行中添加此系统属性来切换到JVM内置解析程序:
-Dvertx.disableDnsResolver=true
顺便说一下,在调用方法的任何时候创建Vert.x实例和Web客户端都是不好的做法。您应该重用两者的单个实例。