Swagger 2 UI无法访问,Spring引导应用程序部署在外部tomcat上

时间:2017-12-14 20:06:16

标签: rest maven tomcat swagger-ui

我已将战争复制到apache-tomcat-8.0.43 / webapps并使用mvn spring-boot:run启动了tomcat。当我尝试访问http://localhost:8080/swagger-ui.html时,我会收到404,但是当我说package com.user; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; import static springfox.documentation.builders.PathSelectors.regex; @SpringBootApplication @EnableSwagger2 public class UserMicroServicesApplication extends SpringBootServletInitializer { private static ConfigurableApplicationContext ctx; @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(UserMicroServicesApplication.class); } public static void main(String[] args) throws Exception { ctx = SpringApplication.run(UserMicroServicesApplication.class, args); } @Bean public Docket productApi() { return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.basePackage("com.user.controller")).paths(regex("/api.*")).build().apiInfo(apiInfo()); } private ApiInfo apiInfo() { return new ApiInfo("User API", "User service API.", "V1", "Terms of service", "", "", ""); } } controller class ------------------- package com.user.controller; import com.user.service.UserService; import com.user.vo.UserVO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; @RestController @RequestMapping(value = "/api") public class UserController { private static final Logger logger = LoggerFactory.getLogger(UserController.class); @Autowired private UserService userService; @RequestMapping(value = "/user", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseStatus(HttpStatus.CREATED) @ResponseBody public UserVO createUser(@RequestBody @Valid UserVO user) { logger.debug("creating user with email = {}", user); UserVO updatedUserVO = userService.createUser(user); logger.debug("user created with id {}", updatedUserVO.getId()); return updatedUserVO; } } POM.xml <packaging>war</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> <relativePath/> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-hateoas</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> <version>1.5.7.RELEASE</version> </dependency> 时它会正常工作。我错过了任何配置吗?示例代码如下:

{{1}}

1 个答案:

答案 0 :(得分:1)

您需要为链接添加上下文路径。

Apache的Tomcat的8.0.43 / web应用/ $ {战争名称}

http://localhost:8080/ $ {战争名称} /swagger-ui.html