Плагин Struts2 Convention @Actions не сопоставляется с Spring Boot - PullRequest
0 голосов
/ 24 сентября 2019

При обновлении моего приложения до использования Spring Boot версии 2.1.8.RELEASE + struts2-Convention-плагин с Struts2-core версии 2.5.20 действия отображаются неправильнои я получаю сообщение об ошибке

com.opensymphony.xwork2.config.ConfigurationException: не существует сопоставленного действия для пространства имен [/] и имени действия [home], связанного с путем контекста [].

Если я декальцирую действия в struts.xml, они отлично работают.

Ниже моя текущая конфигурация, почему они не отображаются?

Я перепробовал множество различных конфигураций, и, похоже, ничего не работает, StrutsPrepareAndExecuteFilter запускается, но действия не обнаруживаются, как если бы Spring их не сканировал.Может ли это быть проблемой версии зависимости?

application.yaml

  server:
    port: 8080
    servlet:
      context-path: /

Struts2.xml

    <struts>
        <constant name="struts.devMode" value="false" />
        <constant name="struts.convention.action.packages" value="com.myactions.action" />
        <constant name="struts.convention.action.includeJars" value=".*?/myjar.*?jar(!/)?,.*?/myjar*?jar(!/)?" />
        <constant name="struts.objectFactory" value="spring" />
        <constant name="struts.objectFactory.spring.autoWire" value="name" />
        <constant name="struts.multipart.maxSize" value="100000000" />
        <constant name="struts.convention.default.parent.package" value="struts-default"/>

    ## THIS WORKS
    <!--    <package name="home"  extends="struts-default">-->
    <!--        <action name="actionHome" class="com.myactions.action.HomeController" method="actionHome">-->
    <!--            <result name="success">home.jsp</result>-->
    <!--        </action>-->
    <!--    </package>-->

    </struts>

Контроллер

@Namespace("/")
public class HomeController extends BaseController {

    @Action("home")
    public String actionHome() throws Exception {           
        return SUCCESS;
    }   
}

Главный

@SpringBootApplication
@ServletComponentScan
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder springApplicationBuilder) {
        return springApplicationBuilder.sources(Application.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

Фильтр Struts2

@WebFilter("/*")
public class Struts2Filter extends StrutsPrepareAndExecuteFilter {

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...