【问题标题】:How to run external war file with embedded tomcat of spring boot with gradle?如何使用带有gradle的spring boot的嵌入式tomcat运行外部war文件?
【发布时间】:2018-02-19 09:50:35
【问题描述】:

我正在尝试将外部 war 文件部署到 spring boot 的嵌入式 tomcat 中。我以 .war 文件的格式添加了 gradle 依赖项,我想通过 spring boot 应用程序运行这个 war,但没有运行请任何人都可以帮助我.

【问题讨论】:

    标签: spring-boot-gradle-plugin


    【解决方案1】:

    试试这种方法。在您的 Spring Boot 应用程序中添加此代码块。 你的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("/cms", new ClassPathResource("cms.war").getFile().toString());
    
                    } catch (Exception ex) {
                        throw new IllegalStateException("Failed to add webapp",ex);
                    }
                    return super.getTomcatEmbeddedServletContainer(tomcat);
                }
            };
    
        }
    

    -> 将 application.properties 中的基本目录更改为

    server.tomcat.basedir=temp-server
    

    【讨论】:

      【解决方案2】:

      Spring Boot 2 中的一些类发生了变化,因此您必须这样做:

      @Bean
      public ServletWebServerFactory servletContainer() {
          return new TomcatServletWebServerFactory() {
              protected TomcatWebServer getTomcatWebServer(Tomcat tomcat) {
                  new File(tomcat.getServer().getCatalinaBase(), "webapps").mkdirs();
                  try {
                      tomcat.addWebapp("/cms", new ClassPathResource("cms.war").getFile().toString());
      
                  } catch (Exception ex) {
                      throw new IllegalStateException("Failed to add webapp", ex);
                  }
                  return super.getTomcatWebServer(tomcat);
              }
          };
      }
      

      【讨论】:

        猜你喜欢
        • 2016-07-22
        • 2014-11-17
        • 2019-07-08
        • 2017-09-14
        • 2017-11-24
        • 2015-10-01
        • 2015-07-31
        • 1970-01-01
        相关资源
        最近更新 更多