【问题标题】:404 /index.xhtml Not Found in ExternalContext as a Resource404 /index.xhtml 在 ExternalContext 中找不到作为资源
【发布时间】:2017-02-03 23:48:57
【问题描述】:

我知道有与此主题相关的类似问题。但是,没有一个答案对我有帮助,我根本无法让我的 Intellij/Tomcat 正常运行。

Tomcat 无法找到任何 *.xhtml 或纯 html 文件。每次我尝试从 IntellIj 运行项目时,我都会收到标题中提到的错误。我还尝试使用 maven 部署项目。效果不好(同样的问题)。

我在 Win10 64 位机器上的默认位置 C:\xampp 中安装了带有 Xampp 的 Tomcat。以下是我的项目的结构:

我在 pom.xml 中定义了我的所有依赖项以及在 tomcat 上部署 Web 应用程序的插件:

   <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>${servlet.version}</version>
      <scope>provided</scope>
    </dependency>
    <!-- Mojarra JSF -->
    <dependency>
      <groupId>com.sun.faces</groupId>
      <artifactId>jsf-api</artifactId>
      <version>${mojarra.version}</version>
    </dependency>
    <dependency>
      <groupId>com.sun.faces</groupId>
      <artifactId>jsf-impl</artifactId>
      <version>${mojarra.version}</version>
    </dependency>
    <!-- PrimeFaces -->
    <dependency>
      <groupId>org.primefaces</groupId>
      <artifactId>primefaces</artifactId>
      <version>${primefaces.version}</version>
    </dependency>
    <dependency>
        <groupId>org.primefaces.extensions</groupId>
        <artifactId>all-themes</artifactId>
        <version>1.0.8</version>
    </dependency>

我在 Intellij 中为 Tomcat 配置的内容:Run/Debug settings in Intellij

我不再知道这可能是什么。多次检查 URL,丢弃 web.xml 中虚拟 /faces/* 文件夹的声明。这是我的完整 web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
         version="3.1">
    <welcome-file-list>
        <welcome-file>index.xhtml</welcome-file>
    </welcome-file-list>
    <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>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>

    <listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener>
    <listener id="ServiceLocator">
        <display-name>InitializeContextListener</display-name>
        <listener-class>wuhu.webclient.InitializeContextListener</listener-class>
    </listener>


    <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>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>WUHU_SERVICE_URL</param-name>
        <param-value>http://localhost:%s/wuhuservice</param-value>
    </context-param>
    <context-param>
        <param-name>WUHU_SERVICE_PORT</param-name>
        <param-value>8123</param-value>
    </context-param>
</web-app>

【问题讨论】:

  • 看起来您的项目没有组织为 maven 项目。在src 中,缺少默认文件夹main。对于 Web 项目,main 中必须有一个名为 webapp 的文件夹。还是您在pom.xml 中指定了非默认设置?
  • 没有。我不得不承认我对 jsf / maven 很陌生。我会尽快解决这个问题
  • @tilt32:在这种情况下不是 jsf/maven,而是 'war'/maven。根据您在标题中的说明,您建议它使用普通的 maven 而不是 intellij 或使用不同的 servlet 引擎。
  • 好的,我确实根据 webapps 的 maven 默认值重新组织了项目,它现在可以工作了。非常感谢吉姆

标签: maven jsf war


【解决方案1】:

错误的 Maven 项目结构,由 JimHawkins 在 cmets 中回答

【讨论】:

    猜你喜欢
    • 2013-11-11
    • 2016-02-10
    • 1970-01-01
    • 2013-07-30
    • 2016-12-25
    • 1970-01-01
    • 2017-08-11
    • 2012-10-20
    • 2011-10-09
    相关资源
    最近更新 更多