我正在尝试运行简单的java服务器/客户端计算器服务器on Thrift教程,但没有成功。我已经下载了预构建的thrift 0.14.2.exe并设置了变量path,到目前为止,我可以从IDL生成存根,但在尝试初始化服务器和客户端时出现了问题。当我尝试使用javac JavaServer.java编译JavaServer时,请参见以下错误
C:\Users\UserX\Desktop\ApacheThrift\thrift-0.14.2\tutorial\java\src>javac JavaServer.java
JavaServer.java:20: error: package org.apache.thrift.server does not exist
import org.apache.thrift.server.TServer;
^
JavaServer.java:21: error: package org.apache.thrift.server.TServer does not exist
import org.apache.thrift.server.TServer.Args;
^
JavaServer.java:22: error: package org.apache.thrift.server does not exist
import org.apache.thrift.server.TSimpleServer;
^
JavaServer.java:23: error: package org.apache.thrift.server does not exist
import org.apache.thrift.server.TThreadPoolServer;
^
JavaServer.java:24: error: package org.apache.thrift.transport does not exist
import org.apache.thrift.transport.TSSLTransportFactory;
^
JavaServer.java:25: error: package org.apache.thrift.transport does not exist
import org.apache.thrift.transport.TServerSocket;
^
JavaServer.java:26: error: package org.apache.thrift.transport does not exist
import org.apache.thrift.transport.TServerTransport;
^
JavaServer.java:27: error: package org.apache.thrift.transport.TSSLTransportFactory does not exist
import org.apache.thrift.transport.TSSLTransportFactory.TSSLTransportParameters;
^
.\CalculatorHandler.java:20: error: package org.apache.thrift does not exist
import org.apache.thrift.TException;
^
.\CalculatorHandler.java:28: error: package Calculator does not exist
public class CalculatorHandler implements Calculator.Iface {
^
JavaServer.java:39: error: package Calculator does not exist
public static Calculator.Processor processor;
^
JavaServer.java:64: error: package Calculator does not exist
public static void simple(Calculator.Processor processor) {
^
JavaServer.java:79: error: package Calculator does not exist
public static void secure(Calculator.Processor processor) {
^
.\CalculatorHandler.java:30: error: cannot find symbol
private HashMap<Integer,SharedStruct> log;
^
symbol: class SharedStruct
location: class CalculatorHandler
.\CalculatorHandler.java:45: error: cannot find symbol
public int calculate(int logid, Work work) throws InvalidOperation {
^
symbol: class Work
location: class CalculatorHandler
.\CalculatorHandler.java:45: error: cannot find symbol
public int calculate(int logid, Work work) throws InvalidOperation {
^
symbol: class InvalidOperation
location: class CalculatorHandler
.\CalculatorHandler.java:82: error: cannot find symbol
public SharedStruct getStruct(int key) {
^
symbol: class SharedStruct
location: class CalculatorHandler
JavaServer.java:30: error: package tutorial does not exist
import tutorial.*;
^
JavaServer.java:31: error: package shared does not exist
import shared.*;
^
.\CalculatorHandler.java:23: error: package tutorial does not exist
import tutorial.*;
^
.\CalculatorHandler.java:24: error: package shared does not exist
import shared.*;
^
JavaServer.java:44: error: package Calculator does not exist
processor = new Calculator.Processor(handler);
^
JavaServer.java:66: error: cannot find symbol
TServerTransport serverTransport = new TServerSocket(9090);
^
symbol: class TServerTransport
location: class JavaServer
JavaServer.java:66: error: cannot find symbol
TServerTransport serverTransport = new TServerSocket(9090);
^
symbol: class TServerSocket
location: class JavaServer
JavaServer.java:67: error: cannot find symbol
TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
^
symbol: class TServer
location: class JavaServer
JavaServer.java:67: error: cannot find symbol
TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
^
symbol: class TSimpleServer
location: class JavaServer
JavaServer.java:67: error: cannot find symbol
TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
^
symbol: class Args
location: class JavaServer
JavaServer.java:86: error: cannot find symbol
TSSLTransportParameters params = new TSSLTransportParameters();
^
symbol: class TSSLTransportParameters
location: class JavaServer
JavaServer.java:86: error: cannot find symbol
TSSLTransportParameters params = new TSSLTransportParameters();
^
symbol: class TSSLTransportParameters
location: class JavaServer
JavaServer.java:98: error: cannot find symbol
TServerTransport serverTransport = TSSLTransportFactory.getServerSocket(9091, 0, null, params);
^
symbol: class TServerTransport
location: class JavaServer
JavaServer.java:98: error: cannot find symbol
TServerTransport serverTransport = TSSLTransportFactory.getServerSocket(9091, 0, null, params);
^
symbol: variable TSSLTransportFactory
location: class JavaServer
JavaServer.java:99: error: cannot find symbol
TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
^
symbol: class TServer
location: class JavaServer
JavaServer.java:99: error: cannot find symbol
TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
^
symbol: class TSimpleServer
location: class JavaServer
JavaServer.java:99: error: cannot find symbol
TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
^
symbol: class Args
location: class JavaServer
.\CalculatorHandler.java:33: error: cannot find symbol
log = new HashMap<Integer, SharedStruct>();
^
symbol: class SharedStruct
location: class CalculatorHandler
.\CalculatorHandler.java:48: error: illegal parenthesized expression
switch (work.op) {
^
.\CalculatorHandler.java:49: error: cannot find symbol
case ADD:
^
symbol: variable ADD
location: class CalculatorHandler
.\CalculatorHandler.java:52: error: cannot find symbol
case SUBTRACT:
^
symbol: variable SUBTRACT
location: class CalculatorHandler
.\CalculatorHandler.java:55: error: cannot find symbol
case MULTIPLY:
^
symbol: variable MULTIPLY
location: class CalculatorHandler
.\CalculatorHandler.java:58: error: cannot find symbol
case DIVIDE:
^
symbol: variable DIVIDE
location: class CalculatorHandler
.\CalculatorHandler.java:60: error: cannot find symbol
InvalidOperation io = new InvalidOperation();
^
symbol: class InvalidOperation
location: class CalculatorHandler
.\CalculatorHandler.java:60: error: cannot find symbol
InvalidOperation io = new InvalidOperation();
^
symbol: class InvalidOperation
location: class CalculatorHandler
.\CalculatorHandler.java:68: error: cannot find symbol
InvalidOperation io = new InvalidOperation();
^
symbol: class InvalidOperation
location: class CalculatorHandler
.\CalculatorHandler.java:68: error: cannot find symbol
InvalidOperation io = new InvalidOperation();
^
symbol: class InvalidOperation
location: class CalculatorHandler
.\CalculatorHandler.java:74: error: cannot find symbol
SharedStruct entry = new SharedStruct();
^
symbol: class SharedStruct
location: class CalculatorHandler
.\CalculatorHandler.java:74: error: cannot find symbol
SharedStruct entry = new SharedStruct();
^
symbol: class SharedStruct
location: class CalculatorHandler
46 errors根据我的理解,我认为我不需要用Visual studio构建任何东西,因为我已经在这里解压了.exe和节约库,.What这一步我可能错过了?
发布于 2021-07-01 09:46:53
使用intelliJ和maven解决了这个问题。
发布于 2021-07-14 05:58:00
包org.apache.thrift.server不存在
您缺少Thrift Java运行时库。
https://stackoverflow.com/questions/68199427
复制相似问题