After upgrading Spectrum, we are getting a 404 page error when trying to open OneClick. When we check the tomcat log we can see the following error message.
Nov 19, 2024 12:42:24 PM (main) (org.apache.struts2.dispatcher.Dispatcher) - (ERROR) - Dispatcher initialization failed
com.opensymphony.xwork2.config.ConfigurationException: Unable to load configuration.
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69) ~[struts2-core-2.5.31.jar:2.5.31]
at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:970) ~[struts2-core-2.5.31.jar:2.5.31]
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:463) ~[struts2-core-2.5.31.jar:2.5.31]
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:496) ~[struts2-core-2.5.31.jar:2.5.31]
at org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:73) ~[struts2-core-2.5.31.jar:2.5.31]
at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:61) ~[struts2-core-2.5.31.jar:2.5.31]
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:262) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:244) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:97) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4345) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4972) ~[catalina.jar:9.0.75]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.ContainerBase.access$000(ContainerBase.java:124) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.ContainerBase$PrivilegedAddChild.run(ContainerBase.java:142) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.ContainerBase$PrivilegedAddChild.run(ContainerBase.java:132) ~[catalina.jar:9.0.75]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:656) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:662) ~[catalina.jar:9.0.75]
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1184) ~[catalina.jar:9.0.75]
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1932) ~[catalina.jar:9.0.75]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-util.jar:9.0.75]
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118) ~[?:?]
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1094) ~[catalina.jar:9.0.75]
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:476) ~[catalina.jar:9.0.75]
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1617) ~[catalina.jar:9.0.75]
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:318) ~[catalina.jar:9.0.75]
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) ~[catalina.jar:9.0.75]
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) ~[catalina.jar:9.0.75]
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:898) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:795) ~[catalina.jar:9.0.75]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322) ~[catalina.jar:9.0.75]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-util.jar:9.0.75]
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) ~[?:?]
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:871) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:249) ~[catalina.jar:9.0.75]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:428) ~[catalina.jar:9.0.75]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[catalina.jar:9.0.75]
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:914) ~[catalina.jar:9.0.75]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[catalina.jar:9.0.75]
at org.apache.catalina.startup.Catalina.start(Catalina.java:772) ~[catalina.jar:9.0.75]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347) ~[bootstrap.jar:9.0.75]
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478) ~[bootstrap.jar:9.0.75]
Caused by: com.opensymphony.xwork2.config.ConfigurationException: Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:274) ~[struts2-core-2.5.31.jar:2.5.31]
at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:98) ~[struts2-core-2.5.31.jar:2.5.31]
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:167) ~[struts2-core-2.5.31.jar:2.5.31]
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) ~[struts2-core-2.5.31.jar:2.5.31]
... 53 more
Caused by: - jar:file:/usr/Spectrum/tomcat/lib/struts2-core-2.5.31.jar!/struts-default.xml:90:72
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:260) ~[struts2-core-2.5.31.jar:2.5.31]
at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:98) ~[struts2-core-2.5.31.jar:2.5.31]
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:167) ~[struts2-core-2.5.31.jar:2.5.31]
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) ~[struts2-core-2.5.31.jar:2.5.31]
... 53 more
Spectrum 23.3.x
In $SPECROOT/tomcat/libs there was an older JAR file struts2-core-2.5.31.jar that was preventing OneClick to load during startup.
Checked and saw that there were two files present in $SPECROOT/tomcat/lib
struts2-core-2.5.31.jar
struts2-core-2.5.33.jar
We removed the older file struts2-core-2.5.31.jar and restarted tomcat and then OneClick was able to startup successfully.