当前位置: 首页 > 知识库问答 >
问题:

使用Apache Thrift时编译错误

艾修然
2023-03-14

我试着运行一个thrift网站上提供的thrift服务器和客户端程序,我得到了以下错误。谁能帮我解决这些错误吗。编码可以在以下位置找到:https://thrift.apache.org/tutorial/java

naren@naren:~/Desktop$ javac javaserver.java 
javaserver.java:16: error: class JavaServer is public, should be declared in a file named JavaServer.java
public class JavaServer {
       ^
javaserver.java:1: error: package org.apache.thrift.server does not exist
import org.apache.thrift.server.TServer;
                               ^
javaserver.java:2: error: package org.apache.thrift.server.TServer does not exist
import org.apache.thrift.server.TServer.Args;
                                       ^
javaserver.java:3: error: package org.apache.thrift.server does not exist
import org.apache.thrift.server.TSimpleServer;
                               ^
javaserver.java:4: error: package org.apache.thrift.server does not exist
import org.apache.thrift.server.TThreadPoolServer;
                               ^
javaserver.java:5: error: package org.apache.thrift.transport does not exist
import org.apache.thrift.transport.TSSLTransportFactory;
                                  ^
javaserver.java:6: error: package org.apache.thrift.transport does not exist
import org.apache.thrift.transport.TServerSocket;
                                  ^
javaserver.java:7: error: package org.apache.thrift.transport does not exist
import org.apache.thrift.transport.TServerTransport;
                                  ^
javaserver.java:8: error: package org.apache.thrift.transport.TSSLTransportFactory does not exist
import org.apache.thrift.transport.TSSLTransportFactory.TSSLTransportParameters;
                                                       ^
javaserver.java:11: error: package tutorial does not exist
import tutorial.*;
^
javaserver.java:12: error: package shared does not exist
import shared.*;
^
javaserver.java:18: error: cannot find symbol
  public static CalculatorHandler handler;
                ^
  symbol:   class CalculatorHandler
  location: class JavaServer
javaserver.java:20: error: package Calculator does not exist
  public static Calculator.Processor processor;
                          ^
javaserver.java:45: error: package Calculator does not exist
  public static void simple(Calculator.Processor processor) {
                                      ^
javaserver.java:58: error: package Calculator does not exist
  public static void secure(Calculator.Processor processor) {
                                      ^
javaserver.java:24: error: cannot find symbol
      handler = new CalculatorHandler();
                    ^
  symbol:   class CalculatorHandler
  location: class JavaServer
javaserver.java:25: error: package Calculator does not exist
      processor = new Calculator.Processor(handler);
                                ^
javaserver.java:47: error: cannot find symbol
      TServerTransport serverTransport = new TServerSocket(9090);
      ^
  symbol:   class TServerTransport
  location: class JavaServer
javaserver.java:47: error: cannot find symbol
      TServerTransport serverTransport = new TServerSocket(9090);
                                             ^
  symbol:   class TServerSocket
  location: class JavaServer
javaserver.java:48: error: cannot find symbol
      TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
      ^
  symbol:   class TServer
  location: class JavaServer
javaserver.java:48: error: cannot find symbol
      TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
                           ^
  symbol:   class TSimpleServer
  location: class JavaServer
javaserver.java:48: error: cannot find symbol
      TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
                                             ^
  symbol:   class Args
  location: class JavaServer
javaserver.java:61: error: cannot find symbol
      TSSLTransportParameters params = new TSSLTransportParameters();
      ^
  symbol:   class TSSLTransportParameters
  location: class JavaServer
javaserver.java:61: error: cannot find symbol
      TSSLTransportParameters params = new TSSLTransportParameters();
                                           ^
  symbol:   class TSSLTransportParameters
  location: class JavaServer
javaserver.java:65: error: cannot find symbol
      TServerTransport serverTransport = TSSLTransportFactory.getServerSocket(9091, 0, null, params);
      ^
  symbol:   class TServerTransport
  location: class JavaServer
javaserver.java:65: error: cannot find symbol
      TServerTransport serverTransport = TSSLTransportFactory.getServerSocket(9091, 0, null, params);
                                         ^
  symbol:   variable TSSLTransportFactory
  location: class JavaServer
javaserver.java:66: error: cannot find symbol
      TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
      ^
  symbol:   class TServer
  location: class JavaServer
javaserver.java:66: error: cannot find symbol
      TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
                           ^
  symbol:   class TSimpleServer
  location: class JavaServer
javaserver.java:66: error: cannot find symbol
      TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
                                             ^
  symbol:   class Args
  location: class JavaServer
29 errors
naren@naren:~/Desktop$ 

共有2个答案

曹和正
2023-03-14

样品官方网络教程附带的旧文件有一些错误(2015年7月,v0.9.x)。由于样本结构/类等不合理,样本不能用少数语言编译。

这个文件的版本在官方tar.gz是好的。

於彬
2023-03-14

从你们展示的内容中我们可以推断出,有两件事出了问题:

  1. 您调用javac似乎有问题,它缺少一个引用Apache Thrift库的类路径。您可以使用-cp参数指定类路径。确保它指向当前目录、Thrift库和您可能正在使用的任何其他库。
  2. 您的类JavaServer应该在名为JavaServer.java的文件中声明(与编译器错误所说的完全一样)。显然,它被称为javaserver.java,这是不一样的(至少在非Windows平台上不是)。
 类似资料:
  • 问题内容: 我正在尝试将此JPA QL转换为条件构建器。JBoss 6.0。 我根据一些教程编写了此代码。 但是,我在一行中遇到了一个编译错误: 错误是: 问题答案: 好吧,我终于找到了调用gt()方法的正确方法。这是完整的解决方案。在JBoss 6中经过全面测试。

  • 我在使用汇总编译Vue脚本时遇到问题。我得到的错误是 [!] 错误:节点_modules/vue/dist/vue未导出“openBlock”。运行时。esm。js,由src/js/components/TestButton导入。vue?vue app.js TestButton.vue 卷起来。配置。js 我尝试了很多不同的东西,但似乎没有任何帮助。但是,如果我在配置中的vuePlugin之前加

  • 我目前正在尝试将基于Ant的构建过程转移到Gradle。 任务“:CompileJava”执行失败。编译失败;有关详细信息,请参阅编译器错误输出。“ -stacktrace选项不提供其他信息。所以,Gradle编译显示我的代码中有一些错误。但是这个相同的代码(Ant jar任务的jar)目前被20个或更多的其他项目使用,一切都是可以的。 Gradle似乎是一个很棒的构建工具,所以我想理解为什么当我

  • 从Eclipse运行install时,我们没有问题,因为编译器版本设置为1.8。 在终端上运行mvn安装时,我们得到以下错误。 当使用mvn install-X时,我们看到目标1.5 然而,这里是我的java和javac版本 我似乎从我运行的每个版本中,我们应该有1.8的合规性,但maven目标继续尝试安装1.5的合规性。

  • 我已经为Raspberry PI使用了已经编译好的openCV版本。任何感兴趣的人的链接 //usr/local/lib/libopencv_calib3d.so.2.4:未定义对`CV::Mutex::Unlock()'的引用 //usr/local/lib/libopencv_calib3d.so.2.4:未定义对`CV::mutex::lock()‘的引用 //usr/local/lib/l