我在部署到远程主机时收到以下错误:
Wrapped by: io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AnnotatedConnectException: connect(..) failed: Address family not supported by protocol: /somegrpcservice-grpc.abc.com:443
Wrapped by: io.grpc.StatusRuntimeException: UNAVAILABLE: io exception
at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:271)
at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:252)
at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:165)
我正在使用fatjar进行部署,当在本地运行时一切正常。只有当服务部署到远程主机时才是这样。我已经尝试过一些事情:
- 从1.30.0到1.53.0的各种版本的io.grpc:grpc-netty-shaded
- 从远程主机运行Ncat并成功连接
- 正在设置系统属性:- Djava.net.preferIPv4堆栈=真
这些似乎都没有什么不同。如果其他人有任何想法,请表示感谢。谢谢!
1条答案
按热度按时间mrfwxfqh1#
在这里找到了我的特殊情况的解决方案:
gRPC UnsupportedAddressTypeException, but only when packaged with shadowJar
显然,我的Fat jar被错误地打包,我需要使用shadowJar中的
mergeServiceFiles()
函数来合并我的服务文件。