java.net.UnknownHostException: не удалось разрешить в Vertx - PullRequest
0 голосов
/ 16 февраля 2019

Я устанавливаю соединение через веб-сокет, когда оно устанавливает соединение WS, если это соединение WSS получает ошибку.

Код:

public void start() throws Exception {
  HttpClientOptions options = new HttpClientOptions();
  options.setSsl(true);
  HttpClient client = vertx.createHttpClient(options);
  MultiMap form = MultiMap.caseInsensitiveMultiMap();
  form.set("Authorization", "bearer token");
  RequestOptions options2 = new RequestOptions()
     .setHost("somehost")
     .setPort(443)
     .setSsl(true)
     .setURI("/someuri");
  client.websocket(options2, form, (ctx) ->{
    ctx.textMessageHandler( msg -> {
      System.out.println(msg);
    }).exceptionHandler((e) -> {
      e.printStackTrace();
      client.close();
    });
  }, (exec) -> {
    exec.printStackTrace();
  });
}

pom.xml:

<dependency>
  <groupId>io.vertx</groupId>
  <artifactId>vertx-core</artifactId>
  <version>3.6.3</version>
</dependency>
<dependency>
  <groupId>io.vertx</groupId>
  <artifactId>vertx-web</artifactId>
  <version>3.6.3</version>
</dependency>

Исключение:

java.net.UnknownHostException: не удалось разрешить «somehost».Превышено максимальное количество запросов на разрешение 4

на io.netty.resolver.dns.DnsResolveContext.finishResolve (DnsResolveContext.java:845) на io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve:80: Dns.по адресу io.netty.resolver.dns.DnsResolveContext.query (DnsResolveContext.java:333) по адресу io.netty.resolver.dns.DnsResolveContext.query (DnsResolveContext.java:322) по адресу io.netty.resolver.TolveTin(DnsResolveContext.java:779) в io.netty.resolver.dns.DnsResolveContext.query (DnsResolveContext.java:333) в io.netty.resolver.dns.DnsResolveContext.query (DnsResolveContext.joresolver.dns.DnsResolveContext.tryToFinishResolve (DnsResolveContext.java:779) по адресу io.netty.resolver.dns.DnsResolveContext.query (DnsResolveContext.java:333) по адресу io.netty.resolver.olvetecontev322) по адресу io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve (DnsResolveContext.java:779) по адресу io.netty.resolver.dns.DnsResolveContext.query (DnsResolveContext.java:333) по адресу io.netty.resolver.dns.DnsResolveContext.query (DnsResolveContext.java:322) по адресу io.netty.resolver.dns.DnsResolveContext.access $ 500 (DnsResjava. 62).netty.resolver.dns.DnsResolveContext $ 3.operationComplete (DnsResolveContext.java:379) в io.netty.util.concurrent.DefaultPromise.notifyListener0 (DefaultPromise.java:511) в io.netty.util.conromistenPef.java: 504) по адресу io.netty.util.concurrent.DefaultPromise.notifyListenersNow (DefaultPromise.java:483) по адресу io.netty.util.concurrent.DefaultPromise.notifyListeners (DefaultPromise.java:424) по адресу io.netty.util.concurrent.DefaultPromise.tryFailure (DefaultPromise.java:121) в io.netty.resolver.dns.DnsQueryContext.setFailure (DnsQueryContext.java:216) в io.netty.resolver.dns.DnsQueryContext.access $ 30043 (DnsQuju)) в io.netty.resolver.dns.DnsQueryContext $ 4.run (DnsQueryContext.java:166) в io.netty.util.concurrent.PromiseTask $ RunnableAdapter.call (PromiseTask).java: 38) на io.netty.util.concurrent.ScheduledFutureTask.run (ScheduledFutureTask.java:127) на io.netty.util.concurrent.AbstractEventExecutor.safeExecute (AbstractEventExecutor.java:163) на io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks (SingleThreadEventExecutor.java:404) в io.netty.channel.nio.NioEventLoop.run (NioEventLoop.java:462) в io.netty.util.concurrent.SingleThreadEventExecutor 5. Single $ 5) в io.netty.util.concurrent.FastThreadLocalRunnable.run (FastThreadLocalRunnable.java:30) в java.lang.Thread.run (Thread.java:748)

Причина: io.netty.resolver.Время ожидания запроса dns.DnsNameResolverTimeoutException: [/xx.xxx.xxx.xxx:xx] истекло 5000 миллисекунд (трассировка стека недоступна)

Если я использовал System.setProperty("vertx.disableDnsResolver", "true") установление соединения, но мне нужно было с DNS.

...