gpt4 book ai didi

jsp - JSF 2.0 标记未出现在 Tomcat 6.0 服务器上

转载 作者:行者123 更新时间:2023-11-28 23:49:42 24 4
gpt4 key购买 nike

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

我已经使用 glassfish 在 netbeans 上测试了我的应用程序,带有 JSF 标签的站点在本地主机上运行良好。

我已经通过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

最佳答案

只有当请求 URL 与 <url-pattern> 匹配时,才会处理 JSF 标记的 FacesServletweb.xml .您似乎已将其映射到 *.jsf ,但是 <welcome-file>index.xhtml不匹配。您有 2 个选择:

  • 映射FacesServlet<url-pattern> 上的 *.xhtml而不是 *.jsf .这样您就永远不需要摆弄虚拟 URL。

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

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

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

关于jsp - JSF 2.0 标记未出现在 Tomcat 6.0 服务器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10483875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com