写Java接口用grpc连接tensorflow-serving,本地在intellij正常跑通都没问题,但是maven打包后运行一直报错。
主要报错提示是:
java.util.concurrent.ExecutionException: io.grpc.StatusRuntimeException: UNKNOWN
Caused by: io.grpc.StatusRuntimeException: UNKNOWN
Caused by: java.nio.channels.UnsupportedAddressTypeException
这种报错提示误导性很强,它不明确指出错误具体是什么。这种ide能跑通打包跑不通的情况,一般都是环境和依赖包的问题。既然是grpc出现的问题,就检查grpc依赖包是否齐全,版本是不是一致的。
我当时的错误原因是依赖里没加grpc-core,但是本地环境里有grpc-core,所以本地能跑通。grpc依赖一般是这几个,可以参考一下。
顺便一提,grpc-core和grpc-netty-shaded在mvn package时候报warning。
[WARNING] grpc-core-1.48.1.jar, grpc-netty-shaded-1.48.1.jar define 1 overlapping resource:
如果用不上grpc-netty-shaded的话就注释掉吧。
总之就是想着确认这几个依赖是不是都没问题,很多bug都是很简单的失误,先别想得太复杂。