2012-08-14 80 views
2

我正在使用Struts2框架並使用HttpClient類進行放置請求。 當我嘗試在LoginAction類中調用httpClient的requestEntity方法時,出現以下錯誤。NoClassDefFoundError IN Struts2框架

嚴重:異常過濾器開始struts2的 java.lang.NoClassDefFoundError:組織/阿帕奇/公/

我已經囊括了所有的類路徑中所需的jar文件的HttpClient /方法/ RequestEntity。

請幫我弄清楚可能是什麼問題。

+3

您使用的是什麼應用程序服務器或servlet容器?提供WAR(或爆炸目錄)中JAR的列表或屏幕截圖。你得到的例外意味着你實際上並沒有全部所需的JAR。 – 2012-08-14 17:19:52

+1

使用IDE例如eclipse.Ideally如果LoginAction類不應編譯如果httpClient類不存在於類路徑中 – 2012-08-14 17:31:30

+1

@MSach:如果他沒有直接使用該類,他正在使用的另一個類(可能來自其他庫)可能會引用'RequestEntity'。這次他不會得到編譯器錯誤。 – 2012-08-14 17:34:13

回答

2

如果您使用的是舊版本(apache commons小於3.0),那麼這個類將不會在舊jar中可用。你必須使用Apache commons 3.0庫。 org/apache/commons/httpclient/methods/RequestEntity課程自v3.0開始添加。檢查javadoc

一般來說,如果我們沒有在類路徑中添加JAR(或沒有項目),那麼我們得到ClassNotFoundException,如果我們有包括在項目JAR,它是在類路徑,但是特定的類不可用,則我們得到NoClassDefFoundError

+0

謝謝您的回覆。但是仍然錯誤仍然存​​在,請你告訴我有沒有其他的方法可以讓我們的課程成爲可用的。 – Soham 2012-08-14 17:57:21

+0

在eclipse或winrar中打開jar並檢查類是否存在 – 2012-08-14 18:05:11

+0

我不知道認爲你對這兩個異常之間的區別的解釋是正確的,檢查Javadocs,'NoClassDefFoundError'指示這個類在編譯過程中存在,但現在找不到,這意味着他實際上並沒有部署JAR作爲他的WAR(或爆炸目錄)的一部分 – 2012-08-14 18:05:36