嵌入式 Tomcat 两次调用 WebApplicationInitializer
Embedded Tomcat calling WebApplicationInitializer twice
我正在使用嵌入式 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();
这已解决,我错误地在 Maven 程序集插件 pom.xml 中添加了 jar 文件(包含 WebApplicationInitializer 实现 class),然后将其添加到 dist/repo 目录下,这就是为什么 class 被加载了两次。
我正在使用嵌入式 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();
这已解决,我错误地在 Maven 程序集插件 pom.xml 中添加了 jar 文件(包含 WebApplicationInitializer 实现 class),然后将其添加到 dist/repo 目录下,这就是为什么 class 被加载了两次。