Невозможно определить базовый URL. Это часто встречается при использовании динамической регистрации сервлета или когда API находится за шлюзом API - PullRequest
0 голосов
/ 21 января 2019

Я уже пошел Почему пользовательский интерфейс springfox-swagger2 сообщает мне «Невозможно определить базовый URL-адрес». и Получение неожиданного результата при настройке Swagger с Spring Boot и без использования Spring SecurityВо всех случаях для каждой службы я использую @EnableSwagger2 аннотаций.

Я следую учебному пособию по ссылке: https://dzone.com/articles/quick-guide-to-microservices-with-spring-boot-20-e и использую gateway-service для запуска проекта вместо proxy-service.

enter image description here

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;
    }
}

Ответы [ 2 ]

0 голосов
/ 09 августа 2019

У меня возникла та же проблема при развертывании приложения Springboot, что и файл войны в Wildfly. Я исключил зависимость tomcat из build.gradle.

compile("org.springframework.boot:spring-boot-starter-web:2.0.3.RELEASE"){
        exclude module: "spring-boot-starter-tomcat"
    }

и изменил класс приложения для расширения SpringBootServletInitializer. Затем добавил

compileOnly("javax.servlet:javax.servlet-api:3.1.0")

для build.gradle, а также добавлена ​​аннотация @EnableAutoConfiguration. У меня это сработало

0 голосов
/ 08 августа 2019

Обновите ваши зависимости springfox-swagger2 и springfox-swagger-ui до версии 2.9.2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...