I'm establishing websocket connection, when it WS connection it is establishing, if that is WSS connection getting error.
Code:
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>
Exception:
java.net.UnknownHostException: failed to resolve 'somehost'. Exceeded max queries per resolve 4
at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:845) at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:806) at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:333) at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:322) at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:779) at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:333) at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:322) at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:779) at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:333) at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:322) at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:779) at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:333) at io.netty.reso lver.dns.DnsResolveContext.query(DnsResolveContext.java:322) at io.netty.resolver.dns.DnsResolveContext.access$500(DnsResolveContext.java:62) at io.netty.resolver.dns.DnsResolveContext$3.operationComplete(DnsResolveContext.java:379) at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511) at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:504) at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:483) at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424) at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:121) at io.netty.resolver.dns.DnsQueryContext.setFailure(DnsQueryContext.java:216) at io.netty.resolver.dns.DnsQueryContext.access$300(DnsQueryContext.java:43) at io.netty.resolver.dns.DnsQueryContext$4.run(DnsQueryContext.java:166) at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38) at io.netty.util.concurrent.ScheduledF utureTask.run(ScheduledFutureTask.java:127) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:462) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748)
Caused by: io.netty.resolver.dns.DnsNameResolverTimeoutException: [/xx.xxx.xxx.xxx:xx] query timed out after 5000 milliseconds (no stack trace available)
If i used System.setProperty("vertx.disableDnsResolver", "true")
connection establishing but i needed with DNS.
I had a similar issue which was due to a machine remembering DNS details of a network it was no longer connected to, and trying to use those servers as the default. This was on Windows 10 / OpenJDK 11 and the stale DNS servers were hidden away in the registry, they didn't show up using ipconfig /all.
I have a workaround that you can see here:
Vertx HttpClient getNow not working
I have also raised a ticket with Netty, to suggest filtering out invalid DNS servers when they are discovering the defaults.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.