Vertx RxJava webclient客户端

时间:2017-06-06 16:25:39

标签: java-8 vert.x rx-java2

我正在尝试使用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

谢谢!

1 个答案:

答案 0 :(得分:2)

它看起来像是您环境中的DNS问题。

尝试通过在命令行中添加此系统属性来切换到JVM内置解析程序:

-Dvertx.disableDnsResolver=true

顺便说一下,在调用方法的任何时候创建Vert.x实例和Web客户端都是不好的做法。您应该重用两者的单个实例。