我正在建立websocket连接,当它建立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:无法解析某个主机。每个解析超出最大查询数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) atio.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.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) atio.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.ScheduledFutureTask.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)
原因:io . netty . resolver . DNS . dnsnameresolvertimeoutexception:[/xx . XXX . XXX . XXX:xx]查询在5000毫秒后超时(没有可用的堆栈跟踪)
如果我使用System.setProperty(“vertx.disableDnsResolver”,“true”)
连接建立,但我需要DNS。
我也遇到过类似的问题,这是由于一台机器记住了它不再连接的网络的DNS细节,并试图使用这些服务器作为默认服务器。这是在Windows 10 / OpenJDK 11上,过时的DNS服务器隐藏在注册表中,它们不会使用ipconfig /all显示出来。
你可以在这里看到我的解决方法:
Vertx HttpClient getNow不工作
我还向Netty提出了一个票证,建议在发现默认值时过滤掉无效的DNS服务器。
https://github.com/netty/netty/issues/10264
但是有了这种依赖关系 未找到任何测试 Feb 22,2018 2:41:28 PM org.junit.platform.launcher.core.defaultlauncher handleThrowable警告:ID为'junit-jupiter'的TestEngine未能发现测试java.lang.noSuchMethoderRor:org.junit.platform.engine.su
我通常会在vert. x垂直的开头看到Promise和Future的使用。两者之间有什么具体的区别吗?我在Scala语言中读到过它们的差异,在Vert. x的情况下也是如此吗?还有我什么时候应该知道什么时候使用Promise或未来?
问题内容: 我正在尝试为ZooKeeper创建docker容器并在集群模式下对其进行配置(完整的代码在此处和此处)。 容器基于Alpine Linux(Docker Hub上为alpine:3.2),但是我要描述的问题也出现在官方Java容器(java:7)上。 我使用以下命令来启动集群: (它们在docker hub上可用,您可以尝试)。 如果我等待一段时间开始的第二和第三个容器,那么主机名之前
问题内容: 我有使用后台进程定期(例如每小时)连接到网络上的内容源以检查更新内容的android代码。当新用户下载该应用并首次运行时,在这种首次运行情况下,(目前看来,这似乎只是一个“似乎”),因为我们服务器的DNS尚未在设备上缓存,最初的一系列连接因可怕的UnknownHostException失败:主机未解析当然,应用程序稍后再试,并且(再次,“看起来像”)一切正常—也许是因为OS有时间来实际
我在vertx文档中看到了下面的语句,我想理解的是verticle在流程完成时自动取消部署,或者我们需要显式调用undeploy方法。 verticles中的自动清理如果您从verticles中创建消费者和生产者,当verticles未部署时,这些消费者和生产者将自动关闭。 谢了。
我有一个创建处理程序,其中包含这样的验证方法: 在validate方法中,我检查输入,如果输入无效,我将其写入响应: 问题是,如果输入无效,我希望处理程序结束。但发生的情况是,如果输入无效,它会设置statusCode并写入响应,然后它继续创建方法中的流程,当它运行最后一行时,它想再次写入响应并抛出异常。我想在输入无效时结束或中止请求。我该怎么做? }