我有一个样例应用程序,它在我的本地机器上使用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)我刚刚重新启动了Tomcat服务器,这样我就可以从头开始了。我可以从时间戳中看到我是同步的。在信息中,它告诉我它正在使Faces Servlet不可用。因此,如果它只是使类不可用,那么它找不到类也就不足为奇了。因此,当我尝试运行我的应用程序时,它失败了。
我不能理解的是,为什么它一开始就决定让它不可用,以及我能做些什么。
在Netbeans中,在我的本地机器上,我使用GlassFish,在EATJ Tomcat上使用。是不是WAR文件中内置了一些东西,使得它不能在Tomcat上运行?很难相信,但也许吧。我正在使用带有primefaces的jsf 2.0,如果这会有什么不同的话。
自从GlassFish与Netbeans捆绑在一起后,我从未在本地机器上运行过Tomcat,它工作得很好。也许我必须在我的本地机器上加载Tomcat来测试它?我不知道该怎么想,所以我需要一些建议。
附注:我记得我添加了glassfish-web.xml来删除一个恼人的警告。我添加的这一行是
<parameter-encoding default-charset="UTF-8"/>也许我需要删除glassfish-web.xml?另一方面,它与使FacesServlet不可用有什么关系?问题似乎比这更深。
发布于 2012-06-13 17:00:46
Glassfish附带捆绑的jsf库。Tomcat不需要,所以你要么需要把jsf库放到tomcat库中,要么在构建项目时把它们添加到war文件中。
您可以下载jsf here。
https://stackoverflow.com/questions/11009102
复制相似问题