Connection to xwiki failing -- Error: Cannot initialize RequestProcessor of class com.xpn.xwiki.web.XWikiRequestProcessor

Trying to get xwiki up on an Amazon Linux 2 instance behind an AWS Application Load Balancer. I’m using the manual .WAR file deployment instructions.

I can access a healthcheck page I created in webapps as a sanity check, but trying to connect to the xwiki app fails with a NullPointerException.

Here’s the seemingly relevant section of /var/log/tomcat/localhost.2020-07-27.log

Configuration files attached.
hibernate.cfg.xml.txt (16.0 KB) xwiki.cfg.txt (25.5 KB) xwiki.properties.txt (51.1 KB)

27-Jul-2020 23:41:27.860 SEVERE [http-nio-8080-exec-6 - http://testalb-944329788.us-east-1.elb.amazonaws.com/xwiki/bin/view/Main/] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [action] in context with path [/xwiki] threw exception
javax.servlet.UnavailableException: Cannot initialize RequestProcessor of class com.xpn.xwiki.web.XWikiRequestProcessor: java.lang.NullPointerException
at org.apache.struts.action.ActionServlet.getRequestProcessor(ActionServlet.java:614)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1910)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:109)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:132)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
27-Jul-2020 23:41:27.861 INFO [http-nio-8080-exec-6 - abcd://testalb-944329788.us-east-1.elb.amazonaws.com/xwiki/bin/view/Main/] org.apache.catalina.core.ApplicationContext.log Marking servlet [action] as unavailable
27-Jul-2020 23:41:27.865 WARNING [http-nio-8080-exec-6 - abcd://testalb-944329788.us-east-1.elb.amazonaws.com/xwiki/bin/view/Main/] org.apache.catalina.core.ApplicationDispatcher.invoke Servlet [action] is currently unavailable

Okay, that’s embarrassing. I deleted the .WAR file after unpacking it. That was the problem. Distribution Manager is now installing the initial wiki.

Whew!