2012-08-02 64 views
2

我在Eclipse中創建了一個Maven項目。從「項目構面」菜單中,我選擇了Dynamic Web Module,Java和Java Server Faces。像jsf-api和servlet-api一樣成功添加了一些來自pom.xml的依賴關係。然後我寫了一個簡單的Java bean和一個使用該bean的xhtml頁面。使用Maven的Eclipse中的JSF項目爲FacesServlet提供了ClassNotFoundException

當我使用「maven clean install」構建war文件並手動將其部署到Tomcat時,它按預期工作。但是,當我從Eclipse中,選擇「服務器上運行,」它提供了以下錯誤:

SEVERE: Servlet /testjsf1 threw load() exception 
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711) 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) 
     at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525) 
     at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507) 
     at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:124) 
     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1136) 
     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080) 
     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:662) 

看來當它從Eclipse的預期運行JSF庫沒有聯繫。你對這種行爲的原因有什麼想法嗎?

+0

這解決了我的問題(其實我們正在通過maven自動添加maven下載的jar文件到lib文件夾中,這些步驟是由maven自動添加的,但是對於lib maven來說並不這樣做) – 2017-03-26 08:49:48

回答

13

在「項目屬性」 - >「部署程序集」中,添加「Java Build Path Entries - > Maven Dependencies」解決了這個問題!

+0

這似乎不起作用了。有了這個解決方案,我得到了更多的ClassNotFoundException。 – Bevor 2012-10-18 18:05:32

+0

這對我有效,謝謝 – jekennedy 2014-10-29 16:47:53

+0

謝謝,我的幫助太多 – 2015-10-02 13:14:56

相關問題