我目前正在使用Servlets 2.4和JSF 1.2开发J2EE项目。如果我在WebSphere 6.1中部署我的应用程序,则页面呈现正确。如果我在使用JDK 1.5的Tomcat 6.0中部署它,页面将无法正确呈现并显示如下内容:
<h:outputText value="#{msg.my_value}" />
我只是想知道导致问题的根本原因是什么,它非常有趣,它在WebSphere中工作,但在Tomcat中不起作用,尽管它们都使用JDK 1.5。
答案 0 :(得分:3)
WebSphere作为一个具体的Java EE应用程序服务器附带了捆绑的JSF库,但Tomcat作为一个简单的JSP / Servlet容器不附带任何捆绑的JSF库。如果您密切关注Tomcat服务器日志,那么您应该已经注意到ClassNotFoundException
上有一个FacesServlet
,这应该已经足以提示这个问题的根本原因。
您需要为Tomcat提供自己的JSF实现。这可以通过手动下载the JSF libraries并将它们放在您的webapp的/WEB-INF/lib
文件夹或Tomcat安装的/lib
文件夹中来完成。后者将适用于所有已部署的Web应用程序,就像在WebSphere中一样。