From 16c07ba434787f68e256fc50cece1425f421b03e Mon Sep 17 00:00:00 2001 From: ZHANG Dapeng Date: Thu, 15 Sep 2016 17:24:28 -0700 Subject: [PATCH] examples: fix bound method not same as in service descriptor for HelloJsonServer Fix the following issue. HelloJsonServer fails to start: ```` Exception in thread "main" java.lang.IllegalStateException: Bound method for helloworld.Greeter/SayHello not same instance as method in service descriptor at io.grpc.ServerServiceDefinition$Builder.build(ServerServiceDefinition.java:156) at io.grpc.examples.advanced.HelloJsonServer.bindService(HelloJsonServer.java:131) at io.grpc.examples.advanced.HelloJsonServer.start(HelloJsonServer.java:70) at io.grpc.examples.advanced.HelloJsonServer.main(HelloJsonServer.java:105) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) ```` --- .../examples/advanced/HelloJsonServer.java | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/examples/src/main/java/io/grpc/examples/advanced/HelloJsonServer.java b/examples/src/main/java/io/grpc/examples/advanced/HelloJsonServer.java index 79d66df23e..a6a742cccc 100644 --- a/examples/src/main/java/io/grpc/examples/advanced/HelloJsonServer.java +++ b/examples/src/main/java/io/grpc/examples/advanced/HelloJsonServer.java @@ -67,7 +67,7 @@ public class HelloJsonServer { private void start() throws IOException { server = ServerBuilder.forPort(port) - .addService(bindService(new GreeterImpl())) + .addService(new GreeterImpl()) .build() .start(); logger.info("Server started, listening on " + port); @@ -114,20 +114,21 @@ public class HelloJsonServer { responseObserver.onNext(reply); responseObserver.onCompleted(); } - } - private ServerServiceDefinition bindService(final GreeterImplBase serviceImpl) { - return io.grpc.ServerServiceDefinition - .builder(GreeterGrpc.getServiceDescriptor()) - .addMethod(HelloJsonClient.HelloJsonStub.METHOD_SAY_HELLO, - asyncUnaryCall( - new UnaryMethod() { - @Override - public void invoke( - HelloRequest request, StreamObserver responseObserver) { - serviceImpl.sayHello(request, responseObserver); - } - })) - .build(); + @Override + public ServerServiceDefinition bindService() { + return io.grpc.ServerServiceDefinition + .builder(GreeterGrpc.getServiceDescriptor().getName()) + .addMethod(HelloJsonClient.HelloJsonStub.METHOD_SAY_HELLO, + asyncUnaryCall( + new UnaryMethod() { + @Override + public void invoke( + HelloRequest request, StreamObserver responseObserver) { + sayHello(request, responseObserver); + } + })) + .build(); + } } }