2017-12-18 318 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); 
    } 

}