jhipster с webflux — Swagger не работает

#swagger #jhipster #jhipster-gateway

#swagger #jhipster #jhipster-шлюз

Вопрос:

Я получаю эту ошибку с помощью jhipster webflux, ошибка приложения шлюза (JWT) Приложение -> реестр -шлюз (angular) — несколько служб (webflux) http://localhost:8080/admin/docs

«тип»: «https://www.jhipster.tech/problem/problem-with-message «, «заголовок»: «Не найден», «статус»: 404, «подробности»: «404 NOT_FOUND», «путь»: «/swagger-ui.html «, «сообщение»: «ошибка.http.404»

.yo-rc.json

 {
  "generator-jhipster": {
    "promptValues": {
      "packageName": "org.abc.gateway",
      "nativeLanguage": "en"
    },
    "jhipsterVersion": "6.10.3",
    "applicationType": "gateway",
    "baseName": "gateway",
    "packageName": "org.abc.gateway",
    "packageFolder": "org/abc/gateway",
    "serverPort": "8080",
    "authenticationType": "jwt",
    "cacheProvider": "no",
    "enableHibernateCache": false,
    "websocket": false,
    "databaseType": "mongodb",
    "devDatabaseType": "mongodb",
    "prodDatabaseType": "mongodb",
    "searchEngine": false,
    "messageBroker": false,
    "serviceDiscoveryType": "eureka",
    "buildTool": "maven",
    "enableSwaggerCodegen": true,
    "jwtSecretKey": "XXXXXXXXXXXXXXXX",
    "embeddableLaunchScript": false,
    "useSass": true,
    "clientPackageManager": "npm",
    "clientFramework": "angularX",
    "clientTheme": "none",
    "clientThemeVariant": "",
    "creationTimestamp": 1602227915588,
    "testFrameworks": ["gatling", "cucumber", "protractor"],
    "jhiPrefix": "jhi",
    "entitySuffix": "",
    "dtoSuffix": "DTO",
    "otherModules": [],
    "enableTranslation": true,
    "nativeLanguage": "en",
    "languages": ["en", "hi"],
    "blueprints": [],
    "reactive": true
  }
}
  

Ошибка при инициализации swagger

java.lang.Ошибка NoSuchMethodError: springfox.documentation.spi.service.contexts.ParameterContext.(Lspringfox/documentation/service/ResolvedMethodParameter;Lspringfox/documentation/builders/ParameterBuilder;Lspringfox/documentation/spi/service/contexts/DocumentationContext;Lspringfox/documentation/spi/schema/GenericTypeNamingStrategy;Lspringfox/documentation/spi/service/contexts/OperationContext;)V

Что мне нужно проверить, чтобы включить swagger в проектах spring-Webflux..

Ответ №1:

Я обнаружил проблему в проекте jhipster: https://github.com/jhipster/generator-jhipster/issues/12072#issuecomment-683282300

Чтобы исправить это :

1- обновите зависимости (удалите старые зависимости)

     <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>${springfox.version}</version>
        <exclusions>
            <exclusion>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-bean-validators</artifactId>
            </exclusion>
            <exclusion>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-bean-validators</artifactId>
        <version>${springfox.version}</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>${springfox.version}</version>
    </dependency>
  

2 — обновите путь «/ v2 / api-docs» до «/v3 / api-docs» во всем проекте (передний задний)

3 — в docs.component.html измените URI

 <iframe src="./swagger-ui/" width="100%" height="900" seamless
    target="_top" title="Swagger UI" class="border-0"></iframe>
  

4 — У меня была проблема с безопасностью.
Я разрешаю ресурсу swagger разрешать все SecurityConfiguration
Поскольку я отключаю Swagger в производственном профиле spring, для меня это не проблема.