Ubuntu 17.04 netty-tcnative ALPN不适用于JDK SSL / TLS引擎

我有一个使用netty-tcnative的Java应用程序(runnung在Oracle Java下,但同样的问题发生在OpenJDK上)。 它在macOS上运行时没有问题,但是当我尝试在Ubuntu 17.04上运行它时,出现以下exception:

 SEVERE: ALPN not available for JDK SSL/TLS engine io.vertx.core.VertxException: ALPN not available for JDK SSL/TLS engine at io.vertx.core.net.impl.SSLHelper.resolveEngineOptions(SSLHelper.java:89) at io.vertx.core.net.impl.SSLHelper.<init>(SSLHelper.java:150) at io.vertx.grpc.VertxChannelBuilder.build(VertxChannelBuilder.java:148) at uk.ashleybye.grpc.tls.Client.start(Client.kt:22) at io.vertx.core.AbstractVerticle.start(AbstractVerticle.java:111) at io.vertx.core.impl.DeploymentManager.lambda$doDeploy$8(DeploymentManager.java:434) at io.vertx.core.impl.ContextImpl.lambda$wrapTask$2(ContextImpl.java:337) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:445) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) at java.lang.Thread.run(Thread.java:748) 

netty-tcnative需要openssl >= 1.0.2和Apache Portable Runtime。 我有:

 $ openssl version OpenSSL 1.0.2g 1 Mar 2016 $ apt show libapr1 Package: libapr1 Version: 1.5.2-5 

据我所知,libapr的正确库位置是/usr/lib/x86_64-linux-gnu

 $ dpkg -L libapr1 /. /usr /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/libapr-1.so.0.5.2 /usr/share /usr/share/doc /usr/share/doc/libapr1 /usr/share/doc/libapr1/changelog.Debian.gz /usr/share/doc/libapr1/copyright /usr/share/lintian /usr/share/lintian/overrides /usr/share/lintian/overrides/libapr1 /usr/lib/x86_64-linux-gnu/libapr-1.so.0 

我试图通过创build/etc/ld.so.conf.d/libapr.conf并添加/usr/lib/x86_64-linux-gnu来将库添加到LD_LIBRARY_PATH (如上所述)。 运行sudo ldconfig ,仍然没有。 即使将其添加到标准path也不会做任何事情。

据我所知,我已经遵循了所有的指示,但它仍然无法正常工作。 更令人费解的是,它在不同的操作系统上运行良好。 netty-tcnative需要特定netty-tcnative平台的二进制文件,我使用google osdetector插件检测osdetector是值得的。 这已经检测到了linux二进制文件。 但是,即使我使用netty-tcnative-boring-static我仍然会得到相同的exception。 切换版本也没有帮助(虽然2X版本不在maxOS上运行,但使用1.1.33.Fork26呢)。 我甚至从apt安装了libnetty-tcnative-java-jni软件包,但仍然没有成功。

我完全失去了,可以真正使用一些帮助得到这个工作。 有什么build议么?