【问题标题】:Error in my first JSF program. Tomcat and Eclipse我的第一个 JSF 程序出错。 Tomcat 和 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)

标签: eclipse jakarta-ee tomcat jsf-2


【解决方案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 文件夹中。重建项目并重新启动服务器,一切顺利。

        【讨论】:

          猜你喜欢
          • 2013-09-28
          • 2011-01-04
          • 1970-01-01
          • 2011-04-02
          • 1970-01-01
          • 1970-01-01
          • 2010-10-31
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多