编译Apache Thrift生成的实现抽象类的Java类时出错

编译Apache Thrift生成的实现抽象类的Java类时出错,java,eclipse,thrift,Java,Eclipse,Thrift,我的团队正在尝试使用Apache Thrift构建服务器,但我们遇到了奇怪的编译问题。在Thrift生成的Java文件中,显示以下行: public static class Client extends shared.BasicServer.Client implements org.apache.thrift.TServiceClient, Iface { public static class Factory implements org.apache.thrift.TServic

我的团队正在尝试使用Apache Thrift构建服务器,但我们遇到了奇怪的编译问题。在Thrift生成的Java文件中,显示以下行:

  public static class Client extends shared.BasicServer.Client implements org.apache.thrift.TServiceClient, Iface {
  public static class Factory implements org.apache.thrift.TServiceClientFactory<Client> {
这些被定义为内部类。当我尝试在Eclipse中构建项目时,它实际上会创建.class文件并运行程序,但Eclipse仍然表示与这些行相关的各种错误,包括以下错误:

绑定不匹配:类型Backend.Client不是TServiceClientFactory Backend.java/server/src/thrift line 42 java问题类型的绑定参数的有效替代品

TServiceClient类型不能是客户端的上级接口;超级接口必须是后端接口。java/server/src/thrift line 41 java问题

我相信这是因为org.apache.thrift.TServiceClient实际上是一个抽象类,而不是一个接口,而客户机正试图实现它。然而,正如我之前所说的,这个程序是编译并运行的,我真的不明白如何编译


有人知道如何消除/抑制这些错误吗?我觉得有一些简单的选项应该传递给我的构建配置。

我在Eclipse和IntelliJ中遇到了同样的问题

我发现thrift编译器和lib-thrift之间的thrift版本不同步

我使用$sudo port install-thrift的thrift版本0.6.0生成java代码,并使用lib-thrift-0.8.0.jar


我按照以下说明进行安装,然后重新生成并更新了java生成的thrift代码,这些错误得到了解决。

我在Eclipse以及IntelliJ中遇到了同样的问题

我发现thrift编译器和lib-thrift之间的thrift版本不同步

我使用$sudo port install-thrift的thrift版本0.6.0生成java代码,并使用lib-thrift-0.8.0.jar

我按照以下说明进行安装,然后重新生成并更新了java生成的thrift代码,这些错误得到了解决。

maven生成:

<dependency>
    <groupId>org.apache.thrift</groupId>
    <artifactId>libthrift</artifactId>
    <version>0.8.0</version>
    <type>pom</type>
</dependency>
只需删除元素:type,然后重新生成它

<dependency>
    <groupId>org.apache.thrift</groupId>
    <artifactId>libthrift</artifactId>
    <version>0.8.0</version>
</dependency>
maven生成:

<dependency>
    <groupId>org.apache.thrift</groupId>
    <artifactId>libthrift</artifactId>
    <version>0.8.0</version>
    <type>pom</type>
</dependency>
只需删除元素:type,然后重新生成它

<dependency>
    <groupId>org.apache.thrift</groupId>
    <artifactId>libthrift</artifactId>
    <version>0.8.0</version>
</dependency>