【发布时间】:2013-05-28 13:56:59
【问题描述】:
[如果有帮助,我正在阅读 Core JavaServer Faces (3rd edition) 一书,现在在第 12 页左右。]
我正在尝试使用 GlassFish 启动 JSF 应用程序,但遇到了我无法识别的问题。我可以正确启动 GlassFish 并看到书中描述的屏幕,所以看起来没问题。然后,我将创建并放置在包含此项目的 src 和 web 目录的目录中的文件 login.war 复制到 GlassFish 的 domain/domain1/autodeploy 目录中。
在 Chrome 中转到 http://localhost:8080 会显示正确的屏幕;但是http://localhost:8080/login,如书中所述并对应于我创建的 login.xhtml 页面,只是返回一个 HTTP 404 错误,告诉我“请求的资源 () 不可用”。
我的web.xml文件如下:
<?xml version="1.0" encoding="UTf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/nx/javaee
http://java.sun.com/xml/ns/javaee/we-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-patter>/faces/*</url-patter>
</servlet-mapping>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
</web-app>
谁能提供帮助?我正在使用 Eclipse IDE,我的 GlassFish 版本,如上述错误页面中所述,是 3.1.2.2。如果有更多有用的信息,例如目录结构,请向我索取。
谢谢,康纳。
【问题讨论】:
-
你能显示你的应用程序的 web.xml 文件吗?
-
我已将我的 web.xml 添加到上面的帖子中。愤怒地强调我实际上并不知道里面应该放什么,所以我很可能弄错了。
-
尝试添加
<context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</param-value> </context-param>并访问localhost:8080/login.jsf -
好的,本书后面几页解释了 web.xml 文件应该是什么样子——我对此有点困惑,因为它肯定说'应用程序应该在此时启动' 在指导用户导航到我提供的第二个链接之后(这是否暗示了什么,例如,鉴于他们所说的,我看到的是正确的行为)?我已将我的 web.xml 更改为书中的那个,并且还包括了你给我的 context-param,但我仍然得到相同的结果。有什么想法吗?
-
@yodamad:这本书是你的吗?书中
http://localhost:8080/login示例不是Facelet 文件。它是 webapp 的上下文根(反过来,它应该隐式地打开<welcome-file>中声明的web.xml)。 OP 明确打开/login.xhtml的声明/期望具有误导性。 @ConorW:暂停 JSF 并学习基本的 Servlet 可能会有所帮助,以便您更好地掌握这种基本的 Servlet API 内容。
标签: java eclipse jsf jakarta-ee glassfish