I using Spring Boot + Struts2, and the convention plugin is not working. That,
is the request URL paths are not being automatically mapped to their
corresponding action classes at all.
Spring Boot: 1.5.19.RELEASE
Struts2: 2.5.20
Java VM JDK 1.8
Maven
I have the struts2-convention-plugin in my maven POM dependencies. And I have
registered the Struts2 StrutsPrepareAndExecuteFilter as a bean in Spring Boot,
and the filter gets called in the request filter chain. However, it is not
resolving the incoming path to an action class using the convention plugin.
Below is a portion of my 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" />
<constant name="struts.action.extension" value="do" />
<constant name="struts.convention.action.packages"
value="com.ezlista.web.struts2.action" />
<constant name="struts.convention.classes.reload" value="true" />
<constant name="struts.convention.default.parent.package"
value="ezlista-package" />
<constant name="struts.convention.package.locators" value="action" />
<constant name="struts.convention.package.locators.basePackage"
value="com.ezlista.web.struts2" />
<constant name="struts.convention.result.path"
value="/WEB-INF/content/" />
<constant name="struts.custom.i18n.resources" value="messages" />
<constant name="struts.date.format" value="dd/MM/yyyy hh:mm" />
<constant name="struts.freemarker.templatesCache" value="true" />
<constant name="struts.i18n.encoding" value="UTF-8" />
<constant name="struts.objectFactory" value="spring" />
<constant name="struts.serve.static" value="true" />
<constant name="struts.ui.theme" value="simple" />
<constant name="struts.ui.templateDir" value="template" />
<constant name="struts.ognl.allowStaticMethodAccess " value="true" />
<package name="ezlista-package" extends="json-default">
<interceptors>
<interceptor-stack name="ezlistaStack">
<interceptor-ref name="defaultStack">
<param name="exception.logEnabled">true</param>
<param name="exception.logLevel">ERROR</param>
<param name="exception.logCategory">com.ezlista</param>
<param
name="params.excludeParams">dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,parameters\...*,^_csrf</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="ezlistaStack" />
<default-action-ref name="default-action" />
</package>
.....
</struts>
<http://aka.ms/weboutlook>