2012-12-27 298 views
0

我正在創建一個動態web項目。我製作了一個家庭JSP文件並在這個JSP頁面上保存了一個按鈕。當我點擊這個頁面時,它會調用我正在訪問Cassandra數據庫的HelloServlet。我已將所有必需的Jars文件添加到項目中。但是,當我點擊JSP頁面上的按鈕有些例外,即將其在這裏給出運行Web應用程序時出錯?

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 
......... ............ 

另外,我能夠執行,當我使用相同的代碼和相同的罐子創建一個簡單的Java項目我的工作。

尋找幫助!

+0

請顯示您的web.xml行.. –

+1

請列出所有的WEB-INF/libs/*。jar –

+0

我的web.xml eteries很好。 –

回答

2

您已經在項目構建路徑中添加了jar文件。此路徑用於編譯您的應用程序,但它與運行時類路徑不同。在運行時,容器將在部署的webapp的WEB-INF/lib目錄中查找庫。

在Eclipse下,運行時必須存在於WEB-INF/lib下的庫必須簡單地放在Web項目的文件夾WebContent/WEB-INF/lib中。 Eclipse會自動將這些添加到構建路徑中,並將它們添加到WEB-INF/lib目錄(如果已部署的應用程序),以便它們在運行時也可用。

因此,從您的構建路徑中刪除所有cassandra罐子,並將它們放入WebContent/WEB-INF/lib。完成後,它們將出現在項目的Web應用程序庫節點下。

+0

簡而言之..從eclipse中拷貝所有jar文件,並將其放在服務器上運行的war文件夾的WEB-INF/lib文件夾中。 –

+0

@TheSureshAtta:錯,不。每次重新構建Web應用程序並重新部署Web應用程序時,都會將JAR複製到服務器上部署的Web應用程序並不是一個好主意。相反,按照我在答案中的建議進行操作:修復源項目本身,以使Eclipse將jar文件作爲webapp的一部分進行部署。 –

+0

Thnkayou JB Nizet將爲我的項目做它.. –

相關問題