在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跟踪修复。
升级到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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)