NetBeans - Web 应用程序 - 网页子文件夹
NetBeans - Web application - Web pages subfolder
我创建了一个带有 EJB 和 war 模块的企业应用程序。我在这样组织的网页文件夹中添加了一些 XHTML 文件:
Web Pages
WEB-INF
web.xml
protected
testNavigation2.xhtml
testNavigation.xhtml
我还使用 url-pattern *.xhtml 配置了 Faces Servlet。
部署我的应用程序后,我可以毫无问题地访问 URL:host/projectname/testNavigation.xhtml
。显示 testNavigation.xhtml
文件。
但我无法访问:host/projectname/protected/testNavigation2.xhtml
。使用 URL 结果:
HTTP Status 404 - /protected/testNavigation2.xhtml Not Found in
ExternalContext as a Resource
服务器控制台(我使用的是 Glassfish 4.1)报告:
Warning: Context path from ServletContext: /meteocal-project-war
differs from path from bundle: meteocal-project-war Warning:
JSF1064: unable to find or serve resource,
/protected/testNavigation2.xhtml.
如何使 xhtml 文件可从子文件夹访问?我实际上对此做了很多研究,从我读到的内容来看,我正在试验的行为似乎很奇怪。
我认为这不是必需的,但我会 post web.xml 的内容以防我错了:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>protected/testNavigation2.xhtml</welcome-file>
</welcome-file-list>
</web-app>
感谢您的关注,
我将非常感谢你能提供的任何帮助
此答案已由 Tiny 在评论中发布。我在这里报告是为了将其标记为答案。
在应用程序根目录下创建了名为 protected 的文件夹后,您可能忘记了部署该应用程序,其中包含该 XHTML 文件 - testNavigation2.xhtml。从头开始重新部署应用程序。
每当您在应用程序中创建文件夹时,NetBeans 基本上都需要硬部署。如果即使在您进行硬部署后仍会发生这种情况,请扫描操作系统上的文件系统以查看在部署的 WAR 文件中是否有一个名为 protected 的文件夹具有上述 XHTML 文件。症状基本上只是新创建的文件夹保护自己以及提到的 XHTML 文件在部署的 WAR 文件中不可用。
来自小小
我创建了一个带有 EJB 和 war 模块的企业应用程序。我在这样组织的网页文件夹中添加了一些 XHTML 文件:
Web Pages
WEB-INF
web.xml
protected
testNavigation2.xhtml
testNavigation.xhtml
我还使用 url-pattern *.xhtml 配置了 Faces Servlet。
部署我的应用程序后,我可以毫无问题地访问 URL:host/projectname/testNavigation.xhtml
。显示 testNavigation.xhtml
文件。
但我无法访问:host/projectname/protected/testNavigation2.xhtml
。使用 URL 结果:
HTTP Status 404 - /protected/testNavigation2.xhtml Not Found in ExternalContext as a Resource
服务器控制台(我使用的是 Glassfish 4.1)报告:
Warning: Context path from ServletContext: /meteocal-project-war differs from path from bundle: meteocal-project-war Warning:
JSF1064: unable to find or serve resource, /protected/testNavigation2.xhtml.
如何使 xhtml 文件可从子文件夹访问?我实际上对此做了很多研究,从我读到的内容来看,我正在试验的行为似乎很奇怪。
我认为这不是必需的,但我会 post web.xml 的内容以防我错了:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>protected/testNavigation2.xhtml</welcome-file>
</welcome-file-list>
</web-app>
感谢您的关注, 我将非常感谢你能提供的任何帮助
此答案已由 Tiny 在评论中发布。我在这里报告是为了将其标记为答案。
在应用程序根目录下创建了名为 protected 的文件夹后,您可能忘记了部署该应用程序,其中包含该 XHTML 文件 - testNavigation2.xhtml。从头开始重新部署应用程序。
每当您在应用程序中创建文件夹时,NetBeans 基本上都需要硬部署。如果即使在您进行硬部署后仍会发生这种情况,请扫描操作系统上的文件系统以查看在部署的 WAR 文件中是否有一个名为 protected 的文件夹具有上述 XHTML 文件。症状基本上只是新创建的文件夹保护自己以及提到的 XHTML 文件在部署的 WAR 文件中不可用。
来自小小