是否可以在spring boot中在嵌入式/内置tomcat服务器中部署外部war文件?

时间:2017-09-07 10:58:22

标签: spring maven spring-boot build.gradle spring-boot-gradle-plugin

我想在spring boot应用程序内置的嵌入式服务器中部署opencms.war /任何war文件(它不是在spring boot上构建,但它可以在任何应用程序或Web服务器上运行)。任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

试试这种方法。在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);
            }
        };

    }