我的第一个 JSF 程序出错。 Tomcat 和 Eclipse

Posted

技术标签:

【中文标题】我的第一个 JSF 程序出错。 Tomcat 和 Eclipse【英文标题】:Error in my first JSF program. Tomcat and Eclipse 【发布时间】:2012-04-26 15:06:01 【问题描述】:

我是 Java 初学者。我正在使用 eclipse Helios 和 Tomcat 7。

我配置了服务器并编写了我的第一个 JSF 页面,但出现了这个错误:

HTTP Status 404 - /
type Status report
message /
description The requested resource (/) is not available.
Apache Tomcat/7.0.27

第一页的代码是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"      
      xmlns:h="http://java.sun.com/jsf/html">

    <h:head>
        <title>JSF 2.0 Hello World</title>
    </h:head>
    <h:body>
        <h3>JSF 2.0 Hello World Example - hello.xhtml</h3>

    </h:body>
</html>

然后我将端口更改为 8088。但是当我在浏览器中输入 localhost:8088 时,我得到了同样的错误。

【问题讨论】:

你的配置文件(web.xml,faces-config)等你使用的是maven还是eclipse?还有什么罐子在你的战争中? @LightGuard 我正在使用 Eclipse。我使用 jsf 2.0 (Mojarra 2.0.3 FCS) 【参考方案1】:

这可能是由几个常见原因造成的:

很可能是因为您尝试在启动时访问类似这样的内容:localhost:8080/MyProject/

为此,您必须在 web.xml 中指定欢迎文件列表:

<welcome-file-list>
   <welcome-file>index.xhtml</welcome-file>
 </welcome-file-list>

如果您还没有指定 servlet 映射,还可以添加这些行:

  <servlet-mapping>
   <servlet-name>Faces servlet</servlet-name>
   <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>

确保您的 index.xhtml 文件位于网页文件夹中。

您已将尝试访问的 .xhtml 文件放置在 Wep 页面文件夹之外的某个位置。

您正在尝试访问一些不存在的 .xhtml。

我敢打赌这是第一个,因为日志错误显示:资源 (/),所以您可能正在尝试访问欢迎文件。

希望对你有所帮助!

【讨论】:

【参考方案2】:

你尝试做的方式是错误的

当我们在 jsf 中输入像“localhost:8088\faces\test.jsp”这样的 url 然后发生的第一件事是解析这个 url,如果有任何可以启动 facesServlet 的 url pattren,那么只有 jsf 生命周期开始

此 url 模式必须在部署描述符中(即 web.xml) 现在,当您尝试通过 localhost\8080\ facesservlet 访问它时,它没有启动,这就是您出错的原因。

web.xml 应该有一个类似的条目

Faces servlet *.xhtml

这将确保只要您的 url 有 *.xhtml,那么您的 faces servlet 循环就会启动。

如果你的 web.xml 有

<servlet-mapping>    <servlet-name>Faces servlet</servlet-name>    <url-pattern>/faces/*</url-pattern>   </servlet-mapping>

那么您的网址应该在您的网址中包含“面孔”。 希望这可以帮助。 问候 阿尼尔夏尔马

【讨论】:

【参考方案3】:

您的 jsf 库可能有问题,因此请尝试将它们放在 WEB-inf 下的 lib 文件夹中,然后这样做:右键单击您的项目 -->properties-->java 构建路径-->JSF_lib-- >删除以避免任何冲突

【讨论】:

【参考方案4】:

Tomcat 不附带 jsf 库。下载jsf lib 文件并将它们放在\apache-tomcat\lib 文件夹中。重建项目并重新启动服务器,一切顺利。

【讨论】:

以上是关于我的第一个 JSF 程序出错。 Tomcat 和 Eclipse的主要内容,如果未能解决你的问题,请参考以下文章

在同一个 Tomcat 服务器上部署 JSF 1.2 和 JSF 2.0 应用程序

JSF Maven Tomcat App突然从eclipse停止工作

如何在Tomcat上安装和使用CDI?

使用 tomcat 的 JSF2 日志

Tomcat 上的 Spring Security/JSF/Hibernate 意外会话劫持?

如何在 Tomcat 中通过 JNDI 配置 JSF 2.0 应用程序的项目阶段