[如果它有用,我正在使用Core JavaServer Faces(第3版)一书,我在第12页或附近。]
我正在尝试使用GlassFish启动一个JSF应用程序,但遇到了我无法识别的问题。我可以正确启动GlassFish并查看书中描述的屏幕,因此看起来很好。然后,我将我创建的文件login.war复制到包含此项目的src和web目录的目录中,放入GlassFish的domains / 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。如果还有更多有用的信息,例如目录结构,请问我。
谢谢,Conor。
答案 0 :(得分:1)
如果您需要使用context-root
访问它,则应将应用login
设置为http://localhost:8080/login
。有几种方法可以做到这一点,例如:检查此Glassfish tip或在Eclipse IDE中,在项目属性中单击Web项目设置,然后输入应用程序的新上下文根。
这不是一个错误,所以在您在服务器上运行多个应用程序之前,如果您愿意,可以将其保留。