[SPRING] 기본 URL을 유추 할 수 없습니다. 동적 서블릿 등록을 사용하거나 API가 API 게이트웨이 뒤에있는 경우에 일반적입니다.
SPRING기본 URL을 유추 할 수 없습니다. 동적 서블릿 등록을 사용하거나 API가 API 게이트웨이 뒤에있는 경우에 일반적입니다.
나는 이미 갔다 왜 springfox-swagger2 UI가 "기본 URL을 유추 할 수 없다"고 나에게 말합니까? Spring Boot로 Swagger를 구성하고 Spring Security를 전혀 사용하지 않고 각 서비스마다 예기치 않은 결과가 발생합니다. 각 서비스마다 @ EnableSwagger2 주석을 사용하고 있습니다.
나는 https://dzone.com/articles/quick-guide-to-microservices-with-spring-boot-20-e 링크에서 튜토리얼을 따르고 프록시 서비스 대신 프로젝트가 실행되도록 gateway-service 사용 .
gateway-service.yml
server:
port: 8060
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8061/eureka/
logging:
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss} ${LOG_LEVEL_PATTERN:-%5p} %m%n"
spring:
cloud:
gateway:
discovery:
locator:
enabled: true
routes:
- id: employee-service
uri: lb://employee-service
predicates:
- Path=/employee/**
filters:
- RewritePath=/employee/(?<path>.*), /$\{path}
- id: department-service
uri: lb://department-service
predicates:
- Path=/department/**
filters:
- RewritePath=/department/(?<path>.*), /$\{path}
- id: organization-service
uri: lb://organization-service
predicates:
- Path=/organization/**
filters:
- RewritePath=/organization/(?<path>.*), /$\{path}
OrganizationApplication.java 및 기타 모든 서비스는 이와 같이 정확하게 구현됩니다.
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@EnableSwagger2
public class OrganizationApplication {
public static void main(String[] args) {
SpringApplication.run(OrganizationApplication.class, args);
}
@Bean
public Docket swaggerApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("pl.piomin.services.organization.controller"))
.paths(PathSelectors.any())
.build()
.apiInfo(new ApiInfoBuilder().version("1.0").title("Organization API").description("Documentation Organization API v1.0").build());
}
@Bean
OrganizationRepository repository() {
OrganizationRepository repository = new OrganizationRepository();
repository.add(new Organization("Microsoft", "Redmond, Washington, USA"));
repository.add(new Organization("Oracle", "Redwood City, California, USA"));
return repository;
}
}
해결법
-
==============================
1.springfox-swagger2 및 springfox-swagger-ui 종속성을 2.9.2 버전으로 업그레이드하십시오.
springfox-swagger2 및 springfox-swagger-ui 종속성을 2.9.2 버전으로 업그레이드하십시오.
from https://stackoverflow.com/questions/54285556/unable-to-infer-base-url-this-is-common-when-using-dynamic-servlet-registration by cc-by-sa and MIT license