Java 使用Apache Thrift时出现编译错误
我试图运行thrift网站上提供的thrift服务器和客户端程序,但我发现以下错误。有人能帮我解决这些错误吗。 编码可在以下内容中找到:Java 使用Apache Thrift时出现编译错误,java,thrift,Java,Thrift,我试图运行thrift网站上提供的thrift服务器和客户端程序,但我发现以下错误。有人能帮我解决这些错误吗。 编码可在以下内容中找到: 据我们从你的展示中推断,有两件事出了问题: 调用javac似乎有问题,它缺少一个引用Apache Thrift库的类路径。您可以使用-cp参数指定类路径。确保它指向当前目录、Thrift库和您可能正在使用的任何其他库 您的类JavaServer应该在名为JavaServer.java的文件中声明(正如编译器错误所说)。显然,它被称为javaserver.jav
据我们从你的展示中推断,有两件事出了问题:
javac
似乎有问题,它缺少一个引用Apache Thrift库的类路径。您可以使用-cp
参数指定类路径。确保它指向当前目录、Thrift库和您可能正在使用的任何其他库JavaServer
应该在名为JavaServer.java
的文件中声明(正如编译器错误所说)。显然,它被称为javaserver.java
,这是不一样的(至少在非Windows平台上不一样)官方web教程附带的示例.thrift文件有一些错误(2015年7月,v0.9.x)。 由于样本结构/类等不合理,样本不能用几种语言编译
官方tar.gz中此文件的版本很好。欢迎使用堆栈溢出。请参加会议并再次访问。您的问题不清楚,我们不太擅长调试代码,所以您没有显示。使用该链接为您的问题添加详细信息。您有很多编译错误,一次只能处理一个。我搜索了第一个错误,并查看了我发现的内容:@rene我已经非常清楚地提到了代码所在。请仔细阅读,并试着帮我解决这不是本网站的工作方式。您需要向我们提供一个答案,以便未来的访问者只需验证此问题是否符合他们的情况。他们不应该先去别的地方。在过去的几年里,这里的社区已经意识到这样的非现场链接并不能提供良好的体验。所以我们都有规则要遵循,包括新用户。这本书并非充满了不容忽视的指导。这听起来可能很不友好,也许是这样,但至少有七名成员发现这篇文章不清楚,正如反对票所表明的那样现在它向我显示了28个错误。您能建议我如何检查thrift library for java是否存在吗?您问题中的命令(
javac javaserver.java
)没有显示-cp
参数,因此您仍然需要解决第一点。看一看。
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$