2

I have an application which is implemented in Struts 2.3.24.1, Now I need to update it in latest version of Struts 2.5.20. I upgrade the dependency and start getting errors.

Error :

There is no Action mapped for namespace [/] and action name [welcomeLink] associated with context path [/Struts2Tiles]. - [unknown location] at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:195)

I tried some solutions as below in struts.xml

<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default" namespace="/">

I download the whole sample example from below URL: https://examples.javacodegeeks.com/wp-content/uploads/2017/09/Struts2Tiles.zip

Struts.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
    <constant name="struts.devMode" value="true" />
    <package name="default" extends="struts-default" namespace="/">
        <result-types>
            <result-type name="tiles"
                class="org.apache.struts2.views.tiles.TilesResult" />
        </result-types>
        <action name="*Link" method="{1}"
            class="com.jcg.struts2.tiles.LinkAction">
            <result name="welcome" type="tiles">welcome</result>
            <result name="friends" type="tiles">friends</result>
            <result name="office" type="tiles">office</result>
        </action>
    </package>
</struts>

POM.xml :

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>Struts2Tiles</groupId>
    <artifactId>Struts2Tiles</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <!-- Servlet API Dependency -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        <!-- Struts2 Core Framework Dependency -->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.5.20</version>
        </dependency>
        <!-- Struts2 Tiles Framework Dependency -->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-tiles-plugin</artifactId>
            <version>2.5.20</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>${project.artifactId}</finalName>
    </build>
</project>

Expected Results: Need to upgrade the code in Latest Struts version.

0 Answers0