gRPC + SSL +超级jar + Linux =无法加载netty-tcnative

gRPC + SSL +超级jar + Linux =无法加载netty-tcnative,第1张

概述gRPC + SSL +超级jar + Linux =无法加载netty-tcnative

在gRPC + SSL = UnsatisfIEdlinkError上感谢@nmittler我已经在我的windows PC和目标linux平台上运行gRPC + SSL。

但是只有当我为io.netty/netty-tcnative-boringssl-static/1.1.33.Fork17依赖项指定一个<classifIEr>的io.netty/netty-tcnative-boringssl-static/1.1.33.Fork17 。 这可以是:

硬编码(如到windows-x86_64 )

使用os-maven-plugin和${os.detected.classifIEr}注入

但是这意味着我只能运行在:

windows(或者我硬编码的平台)

我用来编译的平台

但是我真正希望能够做的是在windows上编译,但是在linux上运行。 所以, 从理论上讲 ,我可以放弃<classifIEr>来引入超级jar文件(正如文档中指定的那样)。

我如何使用Nginx 1.9.5作为gRPC的反向代理?

windows上的gRPC C ++

但是,这是行不通的:当我通过io.netty.util.internal.NativelibraryLoader.load()步骤时,我发现一个调用System.maplibraryname() 。

在windows上这正确返回netty-tcnative.dll 。

但在linux(RHEL 7)上,它返回libnetty-tcnative.so …它不在uber-jar( jar tf netty-tcnative-boringssl-static-1.1.33.Fork17.jar返回,其中包括meta-inf/native/libnetty-tcnative-linux-x86_64.so )。

看看jar的分类 linux版本,我可以看到它包含meta-inf/native/libnetty-tcnative.so …这意味着要么build立不同的uber jar需要重新命名libnetty-tcnative-linux-x86_64.so要libnetty-tcnative.so )或NativelibraryLoader某处需要考虑不同的命名…

我在正确的轨道上? 有人可以解决这个问题吗?

你是对的,Maven Central上的超级jar包不包含共享库。 目前还不清楚这个问题是建立还是部署这个罐子。 我已经提出了https://github.com/netty/netty-tcnative/issues/145跟踪修复&#x3002;

升级到io.grpc/grpc-all/0.14.0 (从0.13.2 )解决了我的问题,因为它带来了io.netty/netty-handler的新版本( 4.1.0.CR7与4.1.0.CR3 )。

总结

以上是内存溢出为你收集整理的gRPC + SSL +超级jar + Linux =无法加载netty-tcnative全部内容,希望文章能够帮你解决gRPC + SSL +超级jar + Linux =无法加载netty-tcnative所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1273162.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存