运行Web应用程序时出错?

时间:2012-12-27 08:41:40

标签: eclipse jsp servlets cassandra

我正在创建一个动态Web项目。我制作了一个家庭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项目时,我能够完成我的工作。

寻求帮助!

1 个答案:

答案 0 :(得分:2)

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

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

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