是否可以在 spring 启动时在 embedded/inbuilt tomcat 服务器中部署外部 war 文件?

Is it possible to deploy a external war file in embedded/inbuilt tomcat server in spring boot?

我想部署 opencms.war/any war 文件(它不是建立在 spring 引导上,但它可以是 运行 在任何应用程序或网络服务器上)在 spring 引导应用程序内置嵌入式服务器。谁能帮我解决这个问题?

试试这个方法吧。在您的 spring 引导应用程序中添加此代码块。 将您的 war 文件放在 src/main/resources 目录中。

@Bean
    public EmbeddedServletContainerFactory servletContainerFactory() {
        return new TomcatEmbeddedServletContainerFactory() {

            @Override
            protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(Tomcat tomcat) {

                new File(tomcat.getServer().getCatalinaBase(), "webapps").mkdirs();

                try {

                    tomcat.addWebapp("/test", new ClassPathResource("test.war").getFile().toString());

                } catch (Exception ex) {
                    throw new IllegalStateException("Failed to add webapp",ex);
                }
                return super.getTomcatEmbeddedServletContainer(tomcat);
            }
        };

    }