404 /index.xhtml 在 ExternalContext 中找不到资源
404 /index.xhtml Not Found in ExternalContext as a Resource
我知道有与此主题相关的类似问题。然而,none 的答案确实对我有帮助,我根本无法正确地得到我的 Intellij/Tomcat 运行ning。
Tomcat 无法找到任何 *.xhtml 或纯 html 文件。每次我尝试从 IntellIj 中 运行 项目时,我都会得到标题中提到的错误。我还尝试使用 maven 部署该项目。效果不佳(同样的问题)。
我在 Win10 64 位机器上的默认位置 C:\xampp 安装了 Tomcat 和 Xampp。以下是我的项目的结构:
我在 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 项目结构,由 JimHawkins 在评论中回答
我知道有与此主题相关的类似问题。然而,none 的答案确实对我有帮助,我根本无法正确地得到我的 Intellij/Tomcat 运行ning。
Tomcat 无法找到任何 *.xhtml 或纯 html 文件。每次我尝试从 IntellIj 中 运行 项目时,我都会得到标题中提到的错误。我还尝试使用 maven 部署该项目。效果不佳(同样的问题)。
我在 Win10 64 位机器上的默认位置 C:\xampp 安装了 Tomcat 和 Xampp。以下是我的项目的结构:
我在 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 项目结构,由 JimHawkins 在评论中回答