我的第一个 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停止工作