2012-08-02 65 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

相关问题