2017-12-18 175 views
0

我使用SwaggerCodeGen給出的示例通過SpringBoot創建服務器。 我使用maven構建項目並在本地運行它。 Everythings正常工作。如何部署Swagger生成的彈簧代碼(Tomcat)

現在我想在tomcat(版本7)上部署這個項目。 所以我改變了包裝從罐子戰爭

<packaging>war</packaging> 

和移動的* .war文件到Tomcat \文件夾中的webapps

我試圖運行

本地主機:8080 /應用

哪個返回404

山姆e爲

本地主機:8080 /應用程序/招搖-ui.html
本地主機:8080/V1 /應用/
本地主機:8080/V1 /應用程序/ API-文檔

不幸的是,我沒有使用tomcat的經驗。
該項目不包含web.xml。有必要嗎? 我是否需要創建一個Servlet?

任何幫助,將不勝感激。

回答

0

在你的POM,你需要:

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-tomcat</artifactId> 
     <scope>provided</scope> 
    </dependency> 

<build> 
    <plugins> 

     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
      <version>1.5.9</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>repackage</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>3.0.0</version> 
      <configuration> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 
    </plugins> 

</build> 

你SpringBoot應用程序也應該是這樣的:

public class SpringBootServiceApplication extends SpringBootServletInitializer { 

    public static void main(String[] args) { 
     SpringApplication.run(SpringBootServiceApplication .class, args); 
    } 

    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
     return application.sources(SpringBootServiceApplication .class); 
    } 

}