2017-07-03 71 views
0

對你來說很好的一天Java和gRPC專家在那裏。設置gRPC Java

我一直在關注這個https://github.com/jpdna/gRPC-maven-helloworld,因爲我正在學習使用Java的gRPC。

我能夠使用mvn clean package進行編譯。 但是當我裝在Eclipse項目中,該文件:

org.jpdna.grpchello.HelloWorldServer 

正在尋找類「GreeterGrpc」。

我試圖在終端中執行這樣的:

$ protoc --java_out=/gRPC-maven-helloworld/src/main/java hello_world.proto 

它產生以下類:

- HelloRequest.java 
    - HelloRequestOrBuilder.java 
    - HelloResponse.java 
    - HelloResponseOrBuilder.java 
    - HelloWorldProto.java 

但是,沒有GreeterGrpc.java其被定義爲在該項目的服務。 如果你不介意我問,我想知道如何創建或生成這個GreeterGrpc.java類?

非常感謝你們!

回答

0

我已經找到了答案,我的問題......解決方案僅僅是對Eclipse的項目點擊右鍵,然後選擇Run As - > Maven的產生來源。一旦在目標文件夾中生成源代碼及其文件夾。右鍵單擊那些生成的文件夾(包含源代碼),然後點擊Build Path - >用作源文件夾。錯誤將消失,因爲它將能夠解決缺失的類。

謝謝你,祝你有美好的一天=)!

1

當編譯hello_world.proto時,您需要一個protoc插件protoc-gen-grpc-java生成GreeterGrpc.class

或者您可以使用maven插件來實現相同的目的。 我Maven的配置:

<dependency> 
    <groupId>io.grpc</groupId> 
    <artifactId>grpc-all</artifactId> 
    <version>1.0.3</version> 
</dependency> 


<extension> 
    <groupId>kr.motd.maven</groupId> 
    <artifactId>os-maven-plugin</artifactId> 
    <version>1.5.0.Final</version> 
</extension> 


<plugin> 
<artifactId>exec-maven-plugin</artifactId> 
<groupId>org.codehaus.mojo</groupId> 
<executions> 
    <execution> 
     <id>uncompress</id> 
     <phase>install</phase> 
     <goals> 
      <goal>exec</goal> 
     </goals> 
     <configuration> 
      <executable>${basedir}/bin/upgrade.sh ${environment}</executable> 
     </configuration> 
    </execution> 
</executions> 
</plugin> 


<plugin> 
    <groupId>org.xolstice.maven.plugins</groupId> 
    <artifactId>protobuf-maven-plugin</artifactId> 
    <version>0.5.0</version> 
    <configuration> 
<protocArtifact>com.google.protobuf:protoc:3.1.0:exe:${os.detected.classifier}</protocArtifact> 
     <pluginId>grpc-java</pluginId> 
     <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.0.3:exe:${os.detected.classifier}</pluginArtifact> 
    </configuration> 
    <executions> 
     <execution> 
      <goals> 
       <goal>compile</goal> 
       <goal>compile-custom</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
+0

@Z fp,感謝您花時間回答。但我想我找到了我的問題的答案。你可以在下面找到它。謝謝=)! –