Migrating struts 1.x app to struts 2.5.26

339 Views Asked by At

We are migrating one of our old apps to Struts 2.5.26 due to security issue found in struts 1.x. While testing I noticed that tiles is throwing an exception when the server is coming up.

SEVERE: Exception sending context initialized event to listener instance of class org.apache.struts2.tiles.StrutsTilesListener
java.lang.AbstractMethodError: org.apache.tiles.startup.AbstractTilesInitializer.createContainerFactory(Lorg/apache/tiles/TilesApplicationContext;)Lorg/apache/tiles/factory/AbstractTilesContainerFactory;
    at org.apache.tiles.startup.AbstractTilesInitializer.createContainer(AbstractTilesInitializer.java:123)
    at org.apache.tiles.startup.AbstractTilesInitializer.initialize(AbstractTilesInitializer.java:70)
    at org.apache.tiles.web.startup.AbstractTilesListener.contextInitialized(AbstractTilesListener.java:62)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4992)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5490)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Apr 21, 2021 8:21:29 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart

We have the following in web.xml

    <context-param>
        <param-name>tilesDefinitions</param-name>
        <param-value>/WEB-INF/tiles-defs.xml</param-value>
    </context-param>
    
    <listener>
        <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
    </listener>

and we have the following jars in WEB-INF/lib folder

-rw-r--r-- 1 ryk6mkj 1049089  21175 Apr 20 15:21 tiles-el-2.2.2.jar
-rw-r--r-- 1 ryk6mkj 1049089 161001 Apr 20 15:22 tiles-core-2.2.2.jar
-rw-r--r-- 1 ryk6mkj 1049089  50740 Apr 20 15:22 tiles-jsp-2.2.2.jar
-rw-r--r-- 1 ryk6mkj 1049089  59739 Apr 20 15:22 tiles-servlet-2.2.2.jar
-rw-r--r-- 1 ryk6mkj 1049089  24466 Apr 20 15:22 tiles-template-2.2.2.jar
-rw-r--r-- 1 ryk6mkj 1049089  35898 Apr 20 15:22 tiles-api-2.2.2.jar
-rw-r--r-- 1 ryk6mkj 1049089  71270 Apr 20 15:36 tiles-request-api-1.0.0.jar
-rw-r--r-- 1 ryk6mkj 1049089  32629 Apr 20 15:54 tiles-portlet-2.2.2.jar

I see that createContainerFactory()method is abstract in AbstractTilesInitializer.java class. Not sure why it is not using implementations like StrutsTilesInitializer.java or other implementations?

Any clues why this is happening?

0

There are 0 best solutions below