2010-04-09 64 views
1

谷歌搜索了一切,但找不到解決方案,我的問題。從Netbeans部署JSF項目到Tomcat的問題

當我嘗試部署我的項目到Tomcat,我在Tomcat的日誌中這樣的錯誤:

SEVERE: Error configuring application listener of class com.sun.faces.config.ConfigureListener 
    java.lang.NoClassDefFoundError: javax/servlet/ServletRequestListener 

我試圖把它從新鮮的Netbeans 6.8部署到Tomcat的新鮮6.0.26,但問題仍然在那裏。

Servlet-api.jar位於tomcat/lib文件夾中。試圖用最新的代替它,但問題仍然存在。

沒有編譯錯誤。一切都是正確的。

問題突然開始。沒有代碼改變,沒有添加新的罐子。

幫助?

UPD:內容WEB-INF/lib中:

  • hibernate.jar文件
  • 休眠-testing.jar
  • 石英1.7.2.jar
  • 石英清一色1.7.2
  • servlet的API-2.5-20081211
+0

給你的WEB-INF/lib文件夾內容 – Bozho 2010-04-09 09:34:07

+0

檢查更新。如果你有一些想法,爲什麼可以,也許你可以解釋給我? – Yurish 2010-04-09 09:39:35

回答

3
java.lang.NoClassDefFoundError: javax/servlet/ServletRequestListener 

javax.servlet.ServletRequestListener自的Servlet API 2.4新引入。您的環境似乎無法找到它可以由兩個原因引起:

  1. 無論是web.xml被聲明爲的Servlet 2.3或以上,這迫使服務器Servlet 2.3的兼容模式,或者有問題的服務器不完全支持Servlet 2.4。

  2. Classpath是真的,真的搞砸了。你應該從不不知道你在做什麼,在JRE/lib,JRE/lib/extTomcat/lib中加入/更改/刪除庫。你應該從來沒有把應用服務器特定的庫放在Webapp/WEB-INF/lib中,因爲這沒有任何意義。

要修復1,請確保您的web.xml至少聲明爲Servlet 2.4。最好是服務器可以支持的最新版本。 Tomcat 6.0支持Servlet 2.5,因此相應聲明web.xml

修復2,清理所有污染的類路徑。花更多的時間來了解更多關於phenomeon「classpath」的信息。小心處理它。

+0

試圖運行tomcat本身。解壓新鮮實例,在cmd「catalina run」中運行。服務器啓動,但在日誌中是相同的錯誤。我甚至無法打開Tomcat的啓動頁面或Tomcat管理器。沒有jar添加到tomcat/lib。剛剛開始。建議? – Yurish 2010-04-09 12:21:24

+0

然後它意味着污染在'JRE/lib'或'JRE/lib/ext'中。 – BalusC 2010-04-09 12:28:57

+0

發現有一些jsf庫。奇怪的事情。我沒有把它們放在那裏。刪除。 Tomcat正在啓動。 Thank's!問題本身解決了。現在我有另一個問題,但首先我會嘗試自己。 =] – Yurish 2010-04-09 12:46:26

0

Tomcat不附帶JSF庫,因此您必須將這些包含在WEB-INF/lib中。從上面的列表中可以明顯看出,你錯過了這些。對於JSF2去here

此外,您不需要WEB-INF/lib中的servlet-api,它是提供的庫。

+0

jsf-api.jar,jsf-impl.jar和jsf-facelets.jar位於tomcat_home/lib目錄內。這些罐子也附在項目上進行編譯。從web-inf/lib中移除servlet-api.jar。問題依然存在。 – Yurish 2010-04-09 09:47:59

+0

好的,但你應該從WEB-INF/lib中刪除servlet-api。否則,你有兩個相同類的罐子。 – jarekrozanski 2010-04-09 09:50:24

+0

從我的構建路徑中刪除了所有的servlet-api jar包。問題仍然存在。 serlet-api存在於tomcat/lib文件夾中。找不到原因,爲什麼是這樣?昨天我可以從netbeans(開始和停止)控制tomcat,但現在我甚至沒有在服務器選項卡中看到它的狀態。我在那裏看到它,但它在運行時沒有狀態。 – Yurish 2010-04-09 10:06:58