Как заставить OpenApi UI работать в Payara Micro

Я следил за этим руководством Swagger UI на MicroProfile OpenAPI, но просто добавлял нижеприведенное в Файл pom.xml микроприложения Payara не добавляет /openapi-ui, работает только /openapi. Есть ли что-то еще, что требуется, или это невозможно с Payara Micro, чтобы иметь пользовательский интерфейс OpenApi?

<dependency>
    <groupId>org.microprofile-ext.openapi-ext</groupId>
    <artifactId>openapi-ui</artifactId>
    <version>1.1.2</version>
</dependency>

person FourtyTwo    schedule 06.03.2020    source источник
comment
Вы пробовали добавить <scope>runtime</scope>, как указано здесь: github.com/microprofile -extensions / openapi-ext / tree / master / Кроме того, я думаю, вы пробовали URL open-ui (с нижним регистром i)? Вы пишете это с прописной буквы I.   -  person Christoph John    schedule 06.03.2020
comment
URL-адрес пользовательского интерфейса в вопросе был на самом деле неправильным, и я исправил его. Я добавил <scope>runtime</scope>, но все равно не повезло.   -  person FourtyTwo    schedule 07.03.2020
comment
Я полагаю, вы используете самую последнюю версию Payara Micro?   -  person Christoph John    schedule 07.03.2020
comment
Да, я. Это проблема?   -  person FourtyTwo    schedule 08.03.2020
comment
Нет, просто спрашиваю. Может что-то поправят в более новой версии. У вас случайно развернуто несколько приложений? Потому что OpenAPI будет работать только для одного (что и задумано). См. Эту проблему в проекте Payara: github.com/payara/Payara/issues/4470   -  person Christoph John    schedule 09.03.2020
comment
Спасибо. Я сделал небольшую демонстрацию отдельно, и она сработала. Поэтому мне пришлось применить то, что я сделал в основном проекте, и я нашел свою проблему.   -  person FourtyTwo    schedule 10.03.2020


Ответы (1)


Моя проблема заключалась в классе конфигурации приложения. Мне пришлось изменить

из:

@ApplicationPath("/api/v1")
public class JAXRSConfiguration extends Application {
    public Set<Class<?>> getClasses() {
        Set<Class<?>> s = new HashSet<>();
        s.add(MyResource.class);
        return s;
    }
}

to

@ApplicationPath("/api")
public class JAXRSConfiguration extends Application {

}

Каким-то образом переопределение метода getClasses() и добавление /v1 к пути приложения приводило к путанице с конфигурациями openApi-ui.

person FourtyTwo    schedule 10.03.2020