【问题标题】:Embedded Tomcat calling WebApplicationInitializer twice嵌入式 Tomcat 两次调用 WebApplicationInitializer
【发布时间】:2020-12-08 03:28:43
【问题描述】:

我正在使用嵌入式 tomcat 通过 maven appassembly 插件部署我的应用程序的 war 文件。 我的应用程序是在 Spring 中构建的,它使用 WebApplicationInitializer 而不是 web.xml。 该应用程序被部署在嵌入式 tomcat 中,但是当我将 jamon.war(用于检测)添加到 tomcat 实例时,我的应用程序的 WebApplicationInitializer 实现再次被调用。

我花了将近 8-9 个小时来解决这个问题,但无法解决,我们将不胜感激。 创建Tomcat实例和加载两个war的代码如下。

Tomcat tomcat = new Tomcat();
tomcat.setHostname("localhost");
tomcat.setPort(8080);

File appWar = new File("/home/myApp.war");
Context context = tomcat.addWebapp("", appWar.getAbsolutePath()); // This is my Spring app.

File jamonWar = new File("/home/jamon-war-2.4.war");
Context context = tomcat.addWebapp("", jamonWar.getAbsolutePath());

tomcat.start();

【问题讨论】:

    标签: spring tomcat war loading


    【解决方案1】:

    这已经解决,我错误地在 maven 程序集插件 pom.xml 中添加了 jar 文件(包含 WebApplicationInitializer 实现类),然后添加到 dist/repo 目录下,这就是该类被加载两次的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      • 2015-06-21
      • 2010-11-25
      • 2015-09-11
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      相关资源
      最近更新 更多