Jsf /在ExternalContext中找不到作为资源的login.xhtml

Jsf /在ExternalContext中找不到作为资源的login.xhtml,jsf,Jsf,大家好,我用primefaces创建了一个简单的web应用程序。当我在JBoss AS7上部署应用程序并尝试打开网页时,会出现以下错误: 只是想让你知道我把所有的.xhtml文件都放在了webapp下面 我的堆栈跟踪 20:06:22,318 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host]. [/EjbProjectManagementApplication].[Faces Ser

大家好,我用primefaces创建了一个简单的web应用程序。当我在JBoss AS7上部署应用程序并尝试打开网页时,会出现以下错误:

只是想让你知道我把所有的.xhtml文件都放在了webapp下面

我的堆栈跟踪

20:06:22,318 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].          [/EjbProjectManagementApplication].[Faces Servlet]] (http--0.0.0.0-8080-1) Servlet.service() for   servlet Faces Servlet threw exception: com.sun.faces.context.FacesFileNotFoundException: /login.xhtml      Not Found in ExternalContext as a Resource
at com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:232) [jsf-  impl-2.1.7-jbossorg-2.jar:]
at com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:273) [jsf-impl-2.1.7-jbossorg-2.jar:]
at com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:209) [jsf-impl-2.1.7-jbossorg-2.jar:]
at com.sun.faces.application.view.ViewMetadataImpl.createMetadataView(ViewMetadataImpl.java:114) [jsf-impl-2.1.7-jbossorg-2.jar:]
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:233) [jsf-impl-2.1.7-jbossorg-2.jar:]
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.7-jbossorg-2.jar:]
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116) [jsf-impl-2.1.7-jbossorg-2.jar:]
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) [jsf-impl-2.1.7-jbossorg-2.jar:]
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.6.0_32]
我的faces-config.xml是:

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">
    <managed-bean>
        <managed-bean-name>loginBean</managed-bean-name>
        <managed-bean-class>org.managedBeans.LoginBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>

    <managed-bean>
        <managed-bean-name>ProjectEntityHandlerBean</managed-bean-name>
        <managed-bean-class>org.managedBeans.ProjectEntityHandlerBean</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>departmentEntityHandlerBean</managed-bean-name>
        <managed-bean-class>org.managedBeans.DepartmentEntityHandlerBean</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>employeeEntityHandlerBean</managed-bean-name>
        <managed-bean-class>org.managedBeans.EmployeeEntityHandlerBean</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>partnerEntityHandlerBean</managed-bean-name>
        <managed-bean-class>org.managedBeans.PartnerEntityHandlerBean</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <navigation-rule>
        <display-name>login.xhtml</display-name>
        <from-view-id>/login.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>failure</from-outcome>
            <to-view-id>/failure.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>
    <navigation-rule>
        <display-name>success.xhtml</display-name>
        <from-view-id>/success.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>project</from-outcome>
            <to-view-id>/project.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>
    <navigation-rule>
        <display-name>login.xhtml</display-name>
        <from-view-id>/login.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>/project.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>


</faces-config>
我的web.xml是:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.0"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         metadata-complete="false"           >
 <display-name>svntoyapplication</display-name>
  <welcome-file-list>
    <welcome-file>login.xhtml</welcome-file>
  </welcome-file-list>
          <servlet>
                  <servlet-name>health</servlet-name>
                  <jsp-file>/health.jsp</jsp-file>
         </servlet>
         <servlet-mapping>
                  <servlet-name>health</servlet-name>
                  <url-pattern>/health</url-pattern>
         </servlet-mapping>

  <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>/faces/*</url-pattern>  
  </servlet-mapping> 
    <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>
  <context-param>
    <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>
  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>resources.application</param-value>
  </context-param>
  <context-param>
    <param-name>com.sun.faces.allowTextChildren</param-name>
    <param-value>true</param-value>
</context-param>

  <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
  </listener>  
</web-app>

有人能帮我识别错误吗???

你真的是自己造成的吗?这并不简单,而且是一种类似JSF1.x的配置。这是一个复制粘贴/克隆的项目还是什么?你为什么不从零开始呢?您是否绝对肯定您正在关注JSF2.x目标资源/书籍/教程,而不是过时的JSF1.x?虽然我对您看到的是这个而不是404错误感到有些奇怪,但唯一可能的解释是JSF找不到您指定的viewId。在此处显示您的目录结构以及您试图访问的确切URL。另外,为什么JSF文件有两种不同的URL映射?你真的打算在你的应用程序中同时使用这两种URL样式吗?你说得对,我复制并修改了faces配置。我使用的是JSF2.0。Kolossus,不,我不打算同时使用这两种映射。我只用第二个。同样,它是从另一个项目复制/粘贴,同时试图让我的项目工作。我将删除我的问题解决后的第一个。我把.xhtml文件放错了目录,真是愚蠢。谢谢你们的提示。@panipsilos我也很蠢。谢谢你睁开我的眼睛!