Нет доступа к Swagger в приложении Java - PullRequest
0 голосов
/ 07 августа 2020

У меня есть приложение Java 1.7, и я только что добавил Swagger для просмотра API REST, используя эту документацию.

Я добавил следующее:

пом. xml

    <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-jaxrs</artifactId>
        <version>1.6.2</version>
    </dependency>

MyRestApplication. java

public class MyRestApplication extends Application
{
    @Override
    public Set<Class<?>> getClasses()
    {
        Set<Class<?>> resourceClasses = new HashSet<Class<?>>();

            ...

        resourceClasses.add(io.swagger.jaxrs.listing.ApiListingResource.class);
        resourceClasses.add(io.swagger.jaxrs.listing.SwaggerSerializers.class);

        return  resourceClasses;
    }
}

web. xml

<servlet>
    <servlet-name>Jersey2Config</servlet-name>
    <servlet-class>io.swagger.jaxrs.config.DefaultJaxrsConfig</servlet-class>
    <init-param>
        <param-name>api.version</param-name>
        <param-value>1.0.0</param-value>
    </init-param>
    <init-param>
        <param-name>swagger.api.basepath</param-name>
        <param-value>https://localhost:8443/corporateInterface</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
</servlet>

Сервер JBoss запускается в обычном режиме без ошибок.

Вопрос

Как мне получить доступ к пользовательскому интерфейсу Swagger?

В документации сказано:

Теперь у вас должна быть возможность получить доступ к определению Swagger в /swagger.json и /swagger.yaml в контексте root вашего приложения. .

Итак, я пробовал следующее:

https://localhost:8443/corporateInterface/swagger.json

и

https://localhost:8443/corporateInterface/swagger.yaml

Но браузер возвращает 404 (не найдено).

Я могу получить доступ к своему обычному приложению с помощью:

https://localhost:8443/corporateInterface/login.do

UPDATE

Я также пробовал устанавливать ресурсы swagger в классе Application, но все еще есть та же проблема не b eing может получить доступ к swagger.

public TravellinckRestApplication() {
    BeanConfig beanConfig = new BeanConfig();
    beanConfig.setVersion("1.0.2");
    beanConfig.setSchemes(new String[]{"https"});
    beanConfig.setHost("localhost:8443");
    beanConfig.setBasePath("/corporateInterface");
    beanConfig.setResourcePackage("io.swagger.resources");
    beanConfig.setScan(true);
}
...