NetBeans - Web应用程序 - Web页面子文件夹

时间:2015-01-03 01:14:43

标签: jsf java-ee netbeans

我创建了一个带有EJB和war模块的企业应用程序。我在Web页面文件夹中添加了一些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状态404 - 找不到/protected/testNavigation2.xhtml   ExternalContext作为资源

服务器控制台(我使用Glassfish 4.1)报告:

  

警告:来自ServletContext的上下文路径:/ meteocal-project-war   不同于捆绑的路径:meteocal-project-war警告:
  JSF1064:无法找到或提供资源,   /protected/testNavigation2.xhtml。

如何从子文件夹中访问xhtml文件?我对此做了很多研究,并从我所读到的行为来判断我的实验似乎很奇怪。

我不认为这是必要的,但我会发布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>

感谢您的关注, 我非常感谢你能给予的任何帮助

1 个答案:

答案 0 :(得分:1)

Tiny在评论中发表了这个答案。我在此报告将其标记为答案。

您可能忘记在创建名为protected的文件夹后部署应用程序,该文件夹具有应用程序根目录下的XHTML文件 - testNavigation2.xhtml。从头开始重新部署应用程序。

每当您在应用程序中创建文件夹时,NetBeans基本上都需要进行硬部署。如果在进行硬部署之后发生这种情况,请扫描操作系统上的文件系统,以查看是否存在名为protected的文件夹,其中已部署的WAR文件中包含所述XHTML文件。症状基本上只是新创建的文件夹保护自身以及提到的XHTML文件在部署的WAR文件中不可用。

by Tiny