gpt4 book ai didi

java - Eclipse:Tomcat Servlet 中的 Thrift,ClassNotFoundException TException

转载 作者:行者123 更新时间:2023-11-28 23:42:16 25 4
gpt4 key购买 nike

我正在尝试制作一个可以进行 Apache Thrift 调用的 Java servlet,但我在启动 servlet 时遇到了问题。

我有一个thrift 客户端,一个用于调用thrift 服务器的Java 类

public class ThriftClient {

static TTransport transport;
static TProtocol protocol;
static MyService.Client client;

static long xtk_pointer;

public static void openSocket() throws TException {
transport = new TSocket("localhost", 9090);
transport.open();

protocol = new TBinaryProtocol(transport);
client = new MyService.Client(protocol);
}

我有一个 java servlet,它通过 thrift 客户端打开一个套接字

public class MyServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
out.println("Hello World");
}

void startThrift(String [] args) {
try {
ThriftClient.openSocket();

但是,当我尝试运行这个 servlet(使用 eclipse 和 tomcat 服务器)时,我收到类似

的错误
SEVERE: A child container failed during start

ClassNotFoundException 用于 org.apache.thrift.TException

编辑:我所要做的就是将 thrift jar 包含到 Tomcat 服务器的类路径中。在下面查看我的回答

我已经在没有任何 ClassNotFoundExceptions 的情况下使用了 thrift 客户端,而且 servlet 也可以独立运行。但是,一旦我将 ThriftClient.openSocket(); 添加到 servlet 中,它就会中断,所以我感觉 Thrift 和 Tomcat 正在以某种方式发生冲突。有什么想法吗?

编辑:奇怪的是我从未调用方法 startThrift() 但我仍然收到错误。

最佳答案

虽然您将 thrift jar 包含到您的项目中,但您还必须将它们添加到 Tomcat 库中

首先确保您的外部 jar 在您的项目 Java 构建路径中...

  1. 右键单击您的项目,单击Properties
  2. Deployment Assembly 下,单击 Add...
  3. 双击 Java Build Path Entries... 并选择您要包含的 jar/库

关于java - Eclipse:Tomcat Servlet 中的 Thrift,ClassNotFoundException TException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18604723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com