我是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
时,我得到了同样的错误。
答案 0 :(得分: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文件位于网页文件夹中。
您已经放置了试图访问Wep pages文件夹之外某处的.xhtml文件。
您正在尝试访问一些不存在的.xhtml。
我敢打赌这是第一个因为日志错误显示:资源(/),所以你可能正在尝试访问欢迎文件。
希望它有所帮助!
答案 1 :(得分:6)
Tomcat并没有附带jsf库。下载jsf lib文件并将其放在\ apache-tomcat \ lib文件夹中。重建项目并重新启动服务器,你很高兴。
答案 2 :(得分:0)
你试图做的方式是错误的
在jsf中我们输入的内容如“localhost:8088 \ faces \ test.jsp” 然后发生的第一件事是这个url被解析,如果有任何url pattren可以启动facesServlet然后只有jsf生命周期开始
此url模式必须在部署描述符(即web.xml)中 现在当你试图通过localhost \ 8080 \ facesservlet访问它时,没有开始,所以这就是你的错误的原因。
web.xml应该有一个类似
的条目Faces servlet * .xhtml
这将确保每当你的网址都有* .xhtml时,你的面孔servlet cyscle就会启动。
如果你的web.xml有
<servlet-mapping> <servlet-name>Faces servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping>
然后你的网址应该在你的网址中有“面孔”。 希望这可以帮助。 问候 anil sharma
答案 3 :(得分:0)
您的jsf库可能有问题,所以请尝试将它们放在WEB-inf下的lib文件夹中,然后执行以下操作:右键单击您的项目 - &gt; properties - &gt; java build path - &gt; JSF_lib - &gt;删除以避免任何冲突