" UNAVAILABLE"从Android客户端到python服务器的gRPC故障

时间:2017-05-07 02:05:12

标签: java android python protocol-buffers grpc

在尝试对我的计算机上运行的python RPC服务器(在同一网络上)进行RPC调用时,我在Android上一直在努力解决以下与gRPC相关的问题。

我的android gRPC android客户端编译并运行,但是,我在客户端上收到以下错误消息(并在python服务器上保持沉默):

io.grpc.StatusRuntimeException: UNAVAILABLE
Caused by: java.io.IOException: PROTOCOL_ERROR invalid settings id: -509 

完整的堆栈跟踪读取:

05-06 18:39:01.133 5018-5302/com.example.android.cimi I/SyncAdapter: Failed... : 
io.grpc.StatusRuntimeException: UNAVAILABLE
at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:227)
at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:208)
at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:141)
at com.example.android.cimi.CimiSyncerGrpc$CimiSyncerBlockingStub.getHouseholdTimestamps(CimiSyncerGrpc.java:209)
at com.example.android.cimi.SyncAdapter.onPerformSync(SyncAdapter.java:130)
at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:259)
Caused by: java.io.IOException: PROTOCOL_ERROR invalid settings id: -509
at io.grpc.okhttp.internal.framed.Http2.ioException(Http2.java:589)
at io.grpc.okhttp.internal.framed.Http2.access$200(Http2.java:47)
at io.grpc.okhttp.internal.framed.Http2$Reader.readSettings(Http2.java:304)
at io.grpc.okhttp.internal.framed.Http2$Reader.nextFrame(Http2.java:162)
at io.grpc.okhttp.OkHttpClientTransport$ClientFrameHandler.run(OkHttpClientTransport.java:868)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
05-06 18:39:01.139 5018-5018/com.example.android.cimi I/SyncService: Service destroyed                                                                         

当关闭服务器时,我得到一个不同的错误,所以必须继续进行其他操作。

我使用以下版本:     io.grpc:protoc-GEN-GRPC的Java:1.3.0     com.google.protobuf:protoc:3.0.0

我尝试的事情:

  1. 降级为grpc 1.0.0
  2. 降级Android工作室
  3. 尝试过python 2& 3
  4. 从python客户端连接工作!
  5. 我怎么能调试这个?有没有办法获得更有意义的例外?有没有办法让服务器更加冗长?

    非常感谢任何帮助!

0 个答案:

没有答案