使用Tomcat7-Maven-Plugin和Initializer在战争依赖性时,没有Spring WebApplic



我使用Spring 4.3有2个Spring MVC应用程序。我将它们称为app1和app2。

app1工作正常。我使用Tomcat7-Maven-Plugin(Jetty:Run目标(从Intellij内部运行它,一切都很好。找到其WebApplicationInitializer,运行良好。

现在在App2中,我将App1作为战争依赖性。

<dependency>
  <groupId>com.mycompany</groupId>
  <artifactId>app1</artifactId>
  <type>war</type>
</dependency>

当我运行App2时,还使用Tomcat7-Maven-Plugin(Jetty:Run目标(,我会收到以下(众所周知的(消息:

INFO: No Spring WebApplicationInitializer types detected on classpath

我已经检查了我的目标目录和App1的类,包括其WebApplicationInitializer在爆炸的战争目录和生成的战争本身中都存在。实际上,如果我进行战争并将其放入真正的tomcat7中,它可以很好地加载。

我也尝试添加

<context:component-scan base-package="com.mycompany.path_to_initializer"/>

to App2的ApplicationContext。没有骰子。

关于为什么使用tomcat7插件不起作用的任何想法?

好吧,我从来没有找到 real> real 解决这个问题的解决方案,但幸运的是,这个问题消失了。

我现在有2个类,均名为AppConfiguration,并且在同一软件包中扩展了WebMvCconFigurationsupport。一个生活在app1中,另一个生活在app2中。

App2版本本质上是App1版本的副本,将4-5个bean替换为App2特定实现。当我打包应用程序并创建战争时,App2版本覆盖App1版本。

现在,我实际上有一个appconfiguration在app2中,tomcat开始没有问题。它"查找" WebApplicationInitializer类(仅在App1中存在(,并加载App2 AppConfiguration。

我不知道为什么您不能同时拥有app1中的appconfiguration appconfiguration。但是由于该解决方案对我有用,所以我不会进一步挖掘。

我希望有一天对某人有帮助...

最新更新