0

我正在创建一个动态网络项目。我制作了一个主页 JSP 文件并在此 JSP 页面上保留了一个按钮。当我单击此页面时,它会调用我正在访问 Cassandra 数据库的 HelloServlet。我已将所有必需的 Jars 文件添加到项目中。但是当我点击 JSP 页面上的按钮时,会出现一些异常,这里给出

HTTP Status 500 - Error instantiating servlet class cassandra.HelloServlet

type:- Exception report
message:- Error instantiating servlet class cassandra.HelloServlet
description:- The server encountered an internal error that prevented it from fulfilling this request.

exception:-javax.servlet.ServletException: Error instantiating servlet class cassandra.HelloServlet
............
root cause:- java.lang.NoClassDefFoundError: org/apache/thrift/transport/TTransport
........................
root cause:- java.lang.ClassNotFoundException: org.apache.thrift.transport.TTransport
.........   ............

此外,当我使用相同的代码和相同的 Jars 创建一个简单的 Java 项目时,我能够执行我的工作。

寻求帮助!

4

1 回答 1

2

您已在项目构建路径中添加了 jar 文件。此路径用于编译您的应用程序,但它与运行时 classpath不同。WEB-INF/lib在运行时,容器会在部署的 webapp的目录中查找库。

在 Eclipse 下,运行时必须在 WEB-INF/lib 下存在的库必须简单地放在WebContent/WEB-INF/lib您的 Web 项目的文件夹中。Eclipse 会自动将这些添加到构建路径中,如果已部署应用程序,则将它们添加到 WEB-INF/lib 目录中,以便它们在运行时也可用。

因此,从构建路径中删除所有 cassandra jar,并将它们放入WebContent/WEB-INF/lib. 完成后,它们将出现在项目的Web App Libraries节点下。

于 2012-12-27T10:16:16.667 回答