在部署时找不到FacesServlet

Ila*_*Tal 2 jsf tomcat netbeans primefaces

我有一个示例应用程序,它使用Netbeans和GlassFish在我的本地机器上运行.我从StackOverflow获得了很多帮助,让它运行起来.下一步是尝试将其部署在真实服务器上.我发现我可以在EATJ上尝试它,所以我使用Netbeans生成一个WAR文件,然后我上传了WAR文件.它不起作用,我在其中一个日志中找到了以下内容

INFO: ContextListener: contextDestroyed()
Jun 12, 2012 10:45:33 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet Faces Servlet as unavailable
Jun 12, 2012 10:45:33 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /ww1 threw load() exception
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
Run Code Online (Sandbox Code Playgroud)

我刚刚重启了Tomcat服务器,所以我会有一个干净的名单.我可以从时间戳上看到我是同步的.在INFO中,它告诉我它正在使Faces Servlet不可用.因此,如果它只是让它不可用就找不到它就不足为奇了.因此,当我尝试运行我的应用程序时,它失败了.

我无法理解的是为什么它决定首先使它不可用,以及我能做些什么.

在我的本地机器上的Netbeans中,我正在使用GlassFish,并且正在使用EATJ Tomcat.是否内置在WAR文件中可能使其无法在Tomcat上运行?很难相信,但也许.我正在使用带有primefaces的jsf 2.0,如果这应该有所不同.

我从未在我的本地机器上运行Tomcat,因为GlassFish与Netbeans捆绑在一起,它工作得很好.也许我必须在我的本地机器上加载Tomcat来测试它?我不知道该怎么想,所以我需要提一些建议.

PS我记得我添加了glassfish-web.xml来删除恼人的警告.我添加的这条线是

<parameter-encoding default-charset="UTF-8"/>
Run Code Online (Sandbox Code Playgroud)

也许我需要删除glassfish-web.xml?另一方面,它与FacesServlet不可用有什么关系?问题似乎比这更深刻.

Nik*_*zov 8

Glassfish附带了捆绑的jsf库.Tomcat没有.因此,您需要将jsf库添加到tomcat库中,或者在构建项目时将它们添加到war文件中.
你可以在这里下载jsf .