2016-05-11 7 views
0

私のAPI開発にgrpcを使用しています。grpcサーバの起動時にIllegalStateExceptionが発生する

これまでAPIを作成してアクセスできました。

"INFO:Server started。Listening on port 42420"というメッセージが表示された後、突然この例外スタックトレースが表示されます。

私はこのプロジェクトを展開し、GCEインスタンスでサーバーを起動しました。以前に誰かが直面していた場合、この問題の理由と解決策を教えてください。

スタックトレース:

May 11, 2016 7:14:20 AM io.grpc.internal.AbstractServerStream deframeFailed 
WARNING: Exception processing message 
java.lang.IllegalStateException: MessageDeframer is already closed 
    at com.google.common.base.Preconditions.checkState(Preconditions.java:173) 
    at io.grpc.internal.MessageDeframer.checkNotClosed(MessageDeframer.java:222) 
    at io.grpc.internal.MessageDeframer.deframe(MessageDeframer.java:168) 
    at io.grpc.internal.AbstractStream.deframe(AbstractStream.java:283) 
    at io.grpc.internal.AbstractServerStream.inboundDataReceived(AbstractServerStream.java:199) 
    at io.grpc.netty.NettyServerStream.inboundDataReceived(NettyServerStream.java:77) 
    at io.grpc.netty.NettyServerHandler.onDataRead(NettyServerHandler.java:234) 
    at io.grpc.netty.NettyServerHandler.access$300(NettyServerHandler.java:95) 
    at io.grpc.netty.NettyServerHandler$FrameListener.onDataRead(NettyServerHandler.java:443) 
    at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.onDataRead(DefaultHttp2ConnectionDecoder.java:236) 
    at io.netty.handler.codec.http2.Http2InboundFrameLogger$1.onDataRead(Http2InboundFrameLogger.java:46) 
    at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readDataFrame(DefaultHttp2FrameReader.java:409) 
    at io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:240) 
    at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:147) 
    at io.netty.handler.codec.http2.Http2InboundFrameLogger.readFrame(Http2InboundFrameLogger.java:39) 
    at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:102) 
    at io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:515) 
    at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:575) 
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:360) 
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:244) 
    at io.netty.channel.ChannelHandlerInvokerUtil.invokeChannelReadNow(ChannelHandlerInvokerUtil.java:83) 
    at io.netty.channel.DefaultChannelHandlerInvoker.invokeChannelRead(DefaultChannelHandlerInvoker.java:163) 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:155) 
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:950) 
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:125) 
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:510) 
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:467) 
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:381) 
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:353) 
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:742) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 

答えて

0

エラーがthis issueのように思えます。サービスクライアントがアクセスしていたが実装されていなかったため、この問題のユーザーは例外を経験していましたが、他にもトリガーがあります。修正はほぼコミットされており、次のリリースで修正する必要があります。私のサービスの実装では、私は以下のようなものを持っていたので、私は同様の問題を抱えていた

0

@Override 
public void myMethod(
    //super.myMethod(myRequest, responseObserver);// removing this line resolved my issue. 
    ... 
    responseObserver.onNext(response); // I had exception here because of the super.myMethod call. 
    ... 
} 

は、私は基本実装を呼び出してから、私の実装を行うには良いと思いました。しかし、それは良い考えではなかったようです。

私はこれが誰かの時間を節約したいと思っています。

関連する問題