猿问

找不到 TLS ALPN 提供程序;没有可用的 netty-tcnative、Conscrypt

您使用的是什么版本的 gRPC?

1.13.1


我正在使用 java 8 来构建一个可执行的 jar。下面是java版本:


$ /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin/java -version

openjdk version "1.8.0_171"

OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-2~14.04-b11)

OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

我正在使用 gradle 3.4.1 生成 jar,如下所示: /opt/gradle-3.4.1/bin/gradle jar -Dorg.gradle.java.home=/usr/lib/jvm/java-1.8.0-openjdk-amd64/

以下是模块级 build.gradle 文件中定义的依赖项:


dependencies {

  compile files("$TOOLCHAIN_VERSION_DIR/lib/commons-io-2.6.jar")

  compile files("$TOOLCHAIN_VERSION_DIR/lib/grpc-all.jar")

  compile files("$TOOLCHAIN_VERSION_DIR/lib/java-protobuf.jar")

  compile files("$TOOLCHAIN_VERSION_DIR/lib/jetty.jar")

  compile files("$TOOLCHAIN_VERSION_DIR/lib/log4j-core-2.8.jar")

  compile files("$TOOLCHAIN_VERSION_DIR/lib/log4j-slf4j-impl-2.8.jar")

  compile files("$TOOLCHAIN_VERSION_DIR/lib/netty-tcnative-boringssl-static-2.0.20.Final.jar")

  compile files("$TOOLCHAIN_VERSION_DIR/lib/netty-tcnative-2.0.20.Final.jar")

  compile files("$TOOLCHAIN_VERSION_DIR/lib/picocli-3.8.2.jar")

  compile group: 'com.google.guava', name: 'guava', version: '20.0'

  compile files("$TOOLCHAIN_VERSION_DIR/lib/javassist-3.19.0-GA.jar")

  compile project(':annotation')

}

构建后,我在 AIX7.2 机器上运行 jar,如下所示: /usr/java8_64/jre/bin/java -jar agent-1.0.jar


但是,它在 Ubuntu 机器上运行良好。我按如下方式运行 jar: /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin/java -jar agent-1.0.jar


这里的java版本是:


$ /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin/java -version

openjdk version "1.8.0_171"

OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-2~14.04-b11)

OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

这里有什么问题以及如何解决这个问题?


慕侠2389804
浏览 207回答 3
3回答

萧十郎

就我而言,只需将 Java 版本从 8 更新到 14 即可解决问题(版本 11 也应该没问题)。如果您使用 Intellij,请确保您的版本更改正常工作。

慕田峪9158850

我也在另一个类似的问题中回答了这个问题,如果您使用它,这个问题也可能是因为 alpine 基础图像不兼容。“看起来你正在使用基本映像作为 alpine,它实际上不支持 gRPC,你需要在你的应用程序中添加 gcompact apk。所以,你可以做的是:使用 docker :”RUN apk add gcompat ENV LD_PRELOAD=/lib/libgcompat.so.0

狐的传说

可能是:https ://github.com/grpc/grpc-java/blob/master/SECURITY.md#tls-with-netty-tcnative-on-boringssl我runtime 'io.netty:netty-tcnative-boringssl-static:2.0.25.Final'在我的 build.gradle 中添加并且它有效
随时随地看视频慕课网APP

相关分类

Java
我要回答