Alterando o nome do arquivo struts.xml para um projeto da web Maven com vários módulos

Eu tenho um projeto Maven com vários módulos. Dos quatro módulos, dois deles são módulos da web.

Aqui está a estrutura.

MyProject
   |
   |__ api
   |
   |__ commons
   |
   |__ web_child
   |
   |__ web_main

web_main O módulo é o principal e pode incluirweb_child módulo também.

web_child estrutura do módulo é

 web_child
     |
     |__ src/main/java //java action classes and all
     |__ src/main/resources
     |    |__ struts-config.xml
     |
     |__ WEB-INF
          |__ JSP Pages

web_main estrutura do módulo é

 web_main
     |
     |__ src/main/java //java action classes and all
     |__ src/main/resources
     |    |__ struts.xml
     |
     |__ WEB-INF
          |__ JSP Pages

Ambos os módulos sãowar.

web-main depende de todos os módulos eweb-child depende dos dois primeiros módulos (API e comuns).

noweb-mainépom.xml, Estou adicionando a dependência paraweb-child e adicionará automaticamente outros dois frascos.

O módulo principalweb-main está funcionando perfeitamente no servidor.

Mas quando estou tentando executar oweb-child módulo sozinho, está mostrando erro como

There is no Action mapped for namespace [/] and action name [childMenu] associated with context path ...  

Porque não está pegando ostruts-config.xml

Quando estou renomeando o arquivo parastruts.xml, web-child está funcionando bem. Mas esse módulo principal de tempo não está sendo executado.

Então, eu quero renomear ostruts.xml no módulo filho parastruts-config.xml e eu preciso especificá-lo explicitamente.

Estou usando o Struts2. Mas eu tentei o seguinte emweb.xml e obviamente não funcionou

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>../resources/struts-config.xml</param-value>
    </init-param>
  </servlet>

Como resolver este problema?

ATUALIZAÇÃO 1

Olá, adicionei o seguinte no meu web-child web.xml

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>struts-config.xml</param-value>
    </init-param>
</filter>

E eu estou recebendo a seguinte exceção. Preciso adicionar alguma dependência?

SEVERE: Exception starting filter struts2
Unable to load configuration. - [unknown location]
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:483)
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452)
    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:633)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1653)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)
Caused by: Unable to load configuration. - [unknown location]
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:71)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:429)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:471)
    ... 19 more
Caused by: Cannot locate the chosen ObjectFactory implementation: spring - [unknown location]
    at org.apache.struts2.config.BeanSelectionProvider.alias(BeanSelectionProvider.java:391)
    at org.apache.struts2.config.BeanSelectionProvider.alias(BeanSelectionProvider.java:362)
    at org.apache.struts2.config.BeanSelectionProvider.register(BeanSelectionProvider.java:288)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:215)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:68)
    ... 21 more

questionAnswers(1)

yourAnswerToTheQuestion