3

我是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在浏览器中输入时,我得到了同样的错误。

4

4 回答 4

8

这可能是由几个常见原因引起的:

  • 很可能是因为您试图在启动时访问这样的内容: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 文件位于 Web pages 文件夹中。

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

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

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

希望它有所帮助!

于 2012-04-14T16:45:06.177 回答
6

Tomcat 不附带 jsf 库。下载jsf lib文件并将它们放在 \apache-tomcat\lib 文件夹中。重建项目并重新启动服务器,您就可以开始了。

于 2014-12-15T17:29:39.017 回答
0

您的 jsf 库可能有问题,因此请尝试将它们放在 WEB-inf 下的 lib 文件夹中,然后这样做:右键单击您的项目 -->properties-->java build path-->JSF_lib-->remove in为了避免任何冲突

于 2013-12-26T07:15:59.027 回答
0

你试图做的方式是错误的

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

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

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

Faces servlet *.xhtml

这将确保每当您的网址有 *.xhtml 时,您的 faces servlet cyscle 就会启动。

如果您的 web.xml 有

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

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

于 2012-04-16T12:30:19.277 回答