java.lang.illegalargumentexception:尚未正确配置jetty alpn/npn

vdzxcuhz  于 2021-06-07  发布在  Kafka
关注(0)|答案(5)|浏览(473)

得到 java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been properly configured ,使用时 gRPC(google pub/sub) 发布/使用来自Kafka的消息。

xxe27gdn

xxe27gdn1#

尝试在netty tcnative boringssl static上添加运行时依赖项。请参阅grpc的security.md。注意nettytcnative的版本会随着时间的推移而发生必要的变化;您应该查看特定版本的文档版本(例如,这是针对1.2.0的)。

v2g6jxz6

v2g6jxz62#

正如google所建议的,使用jetty容器而不是tomcat,这个解决方案是可行的,但是在我们的产品中,应用程序部署在tomcat容器上,当然我需要它来在tomcat上工作。
在调试grpc代码时,发现引起问题的guava版本更新了guava版本18.0(以前的版本中有些类没有),解决了问题,但在cf中部署时失败
定制的emebed tomcat核心,它一直工作良好,但团队再次对定制的tomcat容器说不。 Java –jar apm-asset-x.jar –在本地工作正常,但需要为cf start提供一个自定义命令,无法更改cf start过程。
最后,通过在pom.xml中提供以下依赖关系,使类加载器在运行时使用tcssl库而不是tomcat核心库。在过去的3天里,这个解决方案是有效的。
提供org.springframework.boot spring boot starter web org.hibernate*org.apache.tomcat.embed tomcat embed core org.apache.tomcat.embed tomcat embed core
maven清单插件,将tc本机库提升到类加载器的顶部。

ztigrdn8

ztigrdn83#

添加与我的jdk版本匹配的alpn客户机jar为我解决了这个问题。在eclipse中,需要将jar设置为tomcat服务器的引导条目。
你可以在这里找到更多信息:https://medium.com/@parithi/jetty-alpn-npn-has-not-been-properly-configured-solution-418417ee6502解决方案

zi8p0yeb

zi8p0yeb4#

最后,回到引导类路径方法。将jetty-alpn.jar作为引导类路径的前缀,现在它在CloudFoundry中开始正常工作。

brgchamk

brgchamk5#

在pom中,尝试将grpc依赖项放在spring引导依赖项之前(依赖项的顺序很重要)。我做到了,问题就解决了。例如:

<dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-language</artifactId>
    <version>0.13.0-beta</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

相关问题