在深入研究我的问题时,atg gRpc with TLS Client Authentication using SunPKCS11 in netty fails解释说,我改变了netty-tcnative-boringssl的版本。我的build.gradle中的cange来自
compile 'io.netty:netty-tcnative-boringssl-static:1.1.33.Fork26'
到
compile 'io.netty:netty-tcnative-boringssl-static:+'
导致:
+ --- io.netty:netty-tcnative-boringssl-static:+ - > 2.0.1.Final
我这样做了,因为根据netty的javadoc SslContextBuilder's
keyManager(KeyManagerFactory factory)
方法也适用于OpenSSL作为提供程序,它不适用于版本1.1.33.Fork26。
现在,使用新版本netty的slf4j调试输出告诉我:
[main] DEBUG io.netty.handler.ssl.OpenSsl - netty-tcnative不在 类路径; OpenSslEngine将不可用
因此,对netty-tcnative的检测似乎失败了。调试到
io.netty.handler.ssl.OpenSsl
的静态代码块,
检测失败,因为
Class.forName("org.apache.tomcat.jni.SSL", false, OpenSsl.class.getClassLoader());
抛出异常。 我做错了什么,或者这是一些复苏 lat年问题(https://github.com/relayrides/pushy/issues/303和https://github.com/netty/netty-tcnative/issues/136)? //使用Oracle Java 1.8.21在64位Win 10上工作
答案 0 :(得分:0)
Grpc Java 1.3.0不支持netty版本2. 。等待和更新到gRPC java 1.4.0开箱即用,因为对提交https://github.com/grpc/grpc-java/commit/67eefa69b4009948ac664691e719f683c4478290包含netty 2。的支持。