複数のモジュールを含む Maven プロジェクトがあります。4 つのモジュールのうち、2 つが Web モジュールです。
これが構造です。
MyProject
|
|__ api
|
|__ commons
|
|__ web_child
|
|__ web_main
web_main
モジュールがメインで、モジュールも含めることができますweb_child
。
web_child
モジュール構造は
web_child
|
|__ src/main/java //java action classes and all
|__ src/main/resources
| |__ struts-config.xml
|
|__ WEB-INF
|__ JSP Pages
web_main
モジュール構造は
web_main
|
|__ src/main/java //java action classes and all
|__ src/main/resources
| |__ struts.xml
|
|__ WEB-INF
|__ JSP Pages
両方のモジュールはwar
.
web-main
すべてのモジュールにweb-child
依存し、最初の 2 つの (API & コモンズ) モジュールに依存します。
で、依存関係を追加しています。他web-main
の2 つの jar が自動的に追加されます。pom.xml
web-child
メインモジュールweb-main
はサーバー上で完全に実行されています。
しかし、web-child
モジュールを単独で実行しようとすると、次のようなエラーが表示されます
There is no Action mapped for namespace [/] and action name [childMenu] associated with context path ...
をとっていないので、struts-config.xml
ファイルの名前を に変更するとstruts.xml
、web-child
正常に動作します。しかし、その時メインモジュールは実行されていません。
struts.xml
そのため、子モジュールの名前を に変更したいのでstruts-config.xml
、明示的に指定する必要があります。
Struts2 を使用しています。しかし、私は次のことを試しましたがweb.xml
、明らかにうまくいきませんでした
<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>
この問題を解決するには?
更新 1
こんにちは、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>
そして、次の例外が発生しています。依存関係を追加する必要がありますか?
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