【问题标题】:JSF 2.0 Tags not appearing on Tomcat 6.0 ServerJSF 2.0 标签未出现在 Tomcat 6.0 服务器上
【发布时间】:2012-05-16 01:36:10
【问题描述】:

我刚刚使用eatj.com 部署了我的第一个JSF 站点。

我已经使用 glassfish 在 netbeans 上测试了我的应用程序,并且带有 JSF 标记的站点在 localhost 上运行良好。

我已经通过ftp将项目文件上传到tomcat服务器的webapps director文件夹中了。

jsp-api.jar 文件存在于 Tomcat 服务器上的 /lib 文件中。

当我重新启动服务器并转到 /webapps/myproject/web/index.xhtml 页面加载但不可见 jsf 标记。

我尝试将 jar 库复制到 /webapps/myproject/web/WEB-INF/lib/ 但是没有任何变化。

也许这与我的主页是 .xhtml 而不是 .jsf 的事实有关?但我会想如果它在我的本地主机上工作,那么它在这台服务器上工作?

我确信服务器支持 JSF,因为有运行 JSF 页面的示例。

任何帮助将不胜感激。

谢谢

编辑:

下面是我当前的 web.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>
<welcome-file-list>
    <welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>

编辑:

下面是我的 catalina.out 文件中用于服务器启动的粘贴:

INFO: Server startup in 1594 ms
May 7, 2012 1:09:50 PM org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-6713
May 7, 2012 1:09:51 PM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
May 7, 2012 1:09:51 PM org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-6713
May 7, 2012 1:09:57 PM org.apache.catalina.core.AprLifecycleListener init
INFO: 
May 7, 2012 1:09:57 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-6713
May 7, 2012 1:09:57 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1017 ms
May 7, 2012 1:09:57 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
May 7, 2012 1:09:57 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.14
May 7, 2012 1:09:59 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-6713
May 7, 2012 1:09:59 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:4713
May 7, 2012 1:09:59 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/62  config=null
May 7, 2012 1:09:59 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1580 ms

【问题讨论】:

    标签: jsp jsf tomcat xhtml tomcat6


    【解决方案1】:

    仅当请求 URL 与 web.xml 中的 FacesServlet&lt;url-pattern&gt; 匹配时,才会处理 JSF 标记。您似乎已将其映射到*.jsf,但index.xhtml&lt;welcome-file&gt; 与此不匹配。你有两个选择:

    • FacesServlet 映射到*.xhtml&lt;url-pattern&gt; 而不是*.jsf。这样您就无需摆弄虚拟 URL。

    • &lt;welcome-file&gt;更改为index.jsf并在根文件夹中的index.xhtml旁边创建一个空的index.jsf文件,以欺骗服务器它确实存在,以防止404错误。

    顺便说一句,确认您在 Tomcat 的 /lib 中有一个 jsp-api.jar 文件与此问题无关。首先,这是 Tomcat 的标准部分,其次,在使用 Facelets 时根本不会用到。

    最后但并非最不重要的一点是,确保在其 /WEB-INF/lib 文件夹中随 webapp 一起提供具体的 JSF 实现。 Tomcat 是一个简单的 JSP/Servlet 容器,即不附带 JSF,而 Glassfish 是一个成熟的 Java EE 应用程序服务器。如果你没有,download 并在部署到 Tomcat 之前将 javax.faces.jar 文件放到你的 webapp 的 /WEB-INF/lib 文件夹中。还要确保您的 web.xml 被声明为符合 Servlet 2.5,因为 Tomcat 6 是一个相当旧的版本,它不支持像 Glassfish 3 那样的 Servlet 3.0。

    【讨论】:

    • 如果你需要 Servlet 3.0,你可以使用 Tomcat 7。
    • @Mark:确实,但是eat4j.com 只提供Tomcat 6 托管。我个人宁愿跨步到 openshift.com。 JBoss AS 7 上的免费云托管。
    • 很公平。 J2EE 规范的全部意义在于,您可以将您的应用程序从一个规范投诉容器移动到另一个 - 选择最适合您的。
    • 您好,感谢您快速而有帮助的回复。我已将 /WEB-INF/lib 文件夹中的 jar 更改为 javax.faces.jar 文件,因此现在这是唯一存在的 jar。以前我的 是 /faces/* 但是我已将其更改为 *.xhtml ,但我仍然遇到同样的问题。请参阅我的 web.xml 文件的编辑
    • 您的&lt;welcome-file&gt; 错误,但这应该会导致不同的问题,并且仅当您尝试通过 URL 打开文件夹时。请检查服务器启动日志以查看 JSF 是否已正确初始化。
    猜你喜欢
    • 2011-08-18
    • 2015-07-08
    • 2017-10-19
    • 1970-01-01
    • 2012-05-17
    • 2013-02-07
    • 1970-01-01
    • 2014-04-17
    • 2011-08-14
    相关资源
    最近更新 更多