Confluence fails to start up after replacing or editing web.xml file

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform Notice: Server and Data Center Only - This article only applies to Atlassian products on the server and data center platforms.


Platform Notice: Data Center Only - This article only applies to Atlassian products on the data center platform.


After replacing the default web.xml file in <confluence-install>/confluence/WEB-INF, or editing it to add or modify a filter, Confluence fails to start up. The tomcat logs in <confluence-install>/logs/catalina.out show the following:

24-Mar-2020 23:51:18.902 SEVERE [Catalina-utility-1] org.apache.catalina.core.StandardContext.startInternal One or more Filters failed to start. Full details will be found in the appropriate container log file
24-Mar-2020 23:51:18.912 SEVERE [Catalina-utility-1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors


All versions


You can tell that the startup issue is caused by an incompatible filter in web.xml due to the following types of error in <confluence-home>/logs/atlassian-confluence.log:

2020-03-25 11:49:35,038 ERROR [Catalina-utility-1] [ContainerBase.[Standalone].[localhost].[/]] log Exception starting filter [holding-until-started-filter]
java.lang.ClassNotFoundException: com.atlassian.confluence.impl.servlet.HoldingUntilStartedFilter
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(
at org.apache.catalina.core.DefaultInstanceManager.loadClass(
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(
at org.apache.catalina.core.DefaultInstanceManager.newInstance(
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(
at org.apache.catalina.core.ApplicationFilterConfig.<init>(
at org.apache.catalina.core.StandardContext.filterStart(
at org.apache.catalina.core.StandardContext.startInternal(
at org.apache.catalina.util.LifecycleBase.start(
at org.apache.catalina.core.ContainerBase$
at org.apache.catalina.core.ContainerBase$
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(
at java.util.concurrent.ScheduledThreadPoolExecutor$
at java.util.concurrent.ThreadPoolExecutor.runWorker(
at java.util.concurrent.ThreadPoolExecutor$
at org.apache.tomcat.util.threads.TaskThread$
2020-03-25 11:49:35,058 FATAL [Catalina-utility-1] [atlassian.spring.container.SpringContainerContext] getComponent Spring Application context has not been set


An incompatible filter was likely added to web.xml, or a web.xml file from an older version of Confluence was copied to a newer Confluence version.


Replace <confluence-install>/confluence/WEB-INF/web.xml with the default web.xml file from a fresh Confluence install of the same version, or remove any customizations that were recently added to the file, and restart.

Last modified on Mar 25, 2020

Was this helpful?

Provide feedback about this article
Powered by Confluence and Scroll Viewport.