Open jansohn opened 1 month ago
After further tests this has nothing to do with deploying on root context or not. The webapp runs when started in a Tomcat container in Eclipse but fails if I package the WAR file and deploy it on a standalone Tomcat instance. I'll close and open a StackOverflow question instead...
This is somehow caused by
<context-param>
<param-name>jakarta.faces.AUTOMATIC_EXTENSIONLESS_MAPPING</param-name>
<param-value>true</param-value>
</context-param>
If I set this to false
then the application starts up correctly.
My complete web.xml
for reference:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0">
<display-name>Test_Webapp</display-name>
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>test-blue-grey</param-value>
</context-param>
<context-param>
<param-name>jakarta.faces.PROJECT_STAGE</param-name>
<param-value>Production</param-value>
</context-param>
<context-param>
<param-name>jakarta.faces.AUTOMATIC_EXTENSIONLESS_MAPPING</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>jakarta.faces.CLIENT_WINDOW_MODE</param-name>
<param-value>url</param-value>
</context-param>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<listener>
<listener-class>com.test.view.util.ApplicationContextListener</listener-class>
</listener>
<!-- https://github.com/eclipse-ee4j/mojarra/blob/4.0/README.md#controller -->
<servlet>
<servlet-name>facesServlet</servlet-name>
<servlet-class>jakarta.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>120</session-timeout>
</session-config>
</web-app>
I copypasted your web.xml into an empty project targeted at Tomcat 10.1.23 having solely a index.xhtml (the project is of course not literally empty it's just the smallest possible project for a working Faces 4.0 app on Tomcat -- I used Weld as CDI impl btw) Deployment immediately failed with java.lang.ClassNotFoundException: com.test.view.util.ApplicationContextListener. After removing the com.test.view.util.ApplicationContextListener entry from web.xml it deploys fine.
The described issue is not reproducible based on the information provided so far. Please make sure this is the case. Try doing the same, start with the smallest possible project or try removing code/config from your project until it works ;)
Describe the bug
I'm trying to deploy my web application on Tomcat 10.1 with Mojarra 4.0.x. Everything works if I use a webapp context like '/manager' (WAR file name manager.war) but fails if I rename the WAR to ROOT.war (empty/root webapp context '/').
To Reproduce
Steps to reproduce the behavior:
Expected behavior
no startup failures