Swagger 2.x JaxrsAnnotationScanner не находит классы ресурсов, расположенные в ухе - PullRequest
0 голосов
/ 07 марта 2019

В настоящее время я пытаюсь задокументировать существующий API с ядром чванства. Я использую Swagger Core 2.7 и Resteasy 3, так как я развертываю на Wildfly 10. У меня есть война, содержащая мой сервлет отдыха и несколько классов моделей, расположенных в ухе, который также содержит войну. Классы модели помечены @Schema и поэтому нуждаются в зависимости от swagger-аннотаций. Я следовал за учебником на https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Integration-and-configuration

Итак, я добавил зависимость в pom.xml моей войны и зависимость модуля аннотации от моего модуля, содержащего классы модели. Он компилируется и развертывается, но когда я захожу в /myapp/openapi.yaml, я вижу следующие предупреждения в консоли wildfly для каждого ресурса, который я определил в web.xml (кроме тех, которые содержатся в войне)

12: 52: 22,058 ПРЕДУПРЕЖДЕНИЕ [io.swagger.v3.jaxrs2.integration.JaxrsAnnotationScanner] (задание по умолчанию 5): ошибка загрузки класса из resourceClasses: at. .lang.ClassNotFoundException: at. в org.jboss.modules.ModuleClassLoader.findClass (ModuleClassLoader.java:198) в org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked (ConcurrentClassLoader.java:363) в org.jboss.modules.ConcurrentClassLoader.performLoadClass (ConcurrentClassLoader.java:351) в org.jboss.modules.ConcurrentClassLoader.loadClass (ConcurrentClassLoader.java:93) в java.lang.Class.forName0 (собственный метод) в java.lang.Class.forName (Class.java:264) в io.swagger.v3.jaxrs2.integration.JaxrsAnnotationScanner.classes (JaxrsAnnotationScanner.java:68) в io.swagger.v3.oas.integration.GenericOpenApiContext.read (GenericOpenApiContext.java:470) в io.swagger.v3.jaxrs2.integration.resources.BaseOpenApiResource.getOpenApi (BaseOpenApiResource.java:49) в io.swagger.v3.jaxrs2.integration.resources.OpenApiResource.getOpenApi (OpenApiResource.java:32) в io.swagger.v3.jaxrs2.integration.resources.OpenApiResource $ Proxy $ _ $$ _ WeldClientProxy.getOpenApi (неизвестный источник) at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke (Method.java:498) в org.jboss.resteasy.core.MethodInjectorImpl.invoke (MethodInjectorImpl.java:139) в org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget (ResourceMethodInvoker.java:295) в org.jboss.resteasy.core.ResourceMethodInvoker.invoke (ResourceMethodInvoker.java:249) в org.jboss.resteasy.core.ResourceMethodInvoker.invoke (ResourceMethodInvoker.java:236) в org.jboss.resteasy.core.SynchronousDispatcher.invoke (SynchronousDispatcher.java:402) в org.jboss.resteasy.core.SynchronousDispatcher.invoke (SynchronousDispatcher.java:209) в org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service (ServletContainerDispatcher.java:221) в org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service (HttpServletDispatcher.java:56) в org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service (HttpServletDispatcher.java:51) на javax.servlet.http.HttpServlet.service (HttpServlet.java:790) в io.undertow.servlet.handlers.ServletHandler.handleRequest (ServletHandler.java:85) в io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest (ServletSecurityRoleHandler.java:62) в io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest (ServletDispatchingHandler.java:36)в org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest (SecurityContextAssociationHandler.java:78) в io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43) в io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest (SSLInformationAssociationHandler.java:131) в io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest (ServletAuthenticationCallHandler.java:57) в io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43) в io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest (AuthenticationConstraintHandler.java:53) в io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest (AbstractConfidentialityHandler.java:46) в io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest (ServletConfidentialityConstraintHandler.java:64) в io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest (ServletSecurityConstraintHandler.java:59) в io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest (AuthenticationMechanismsHandler.java:60) в io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest (CachedAuthenticatedSessionHandler.java:77) в io.undertow.security.handlers.NotificationReceiverHandler.handleRequest (NotificationReceiverHandler.java:50) в io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest (AbstractSecurityContextAssociationHandler.java:43) в io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43) в org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest (JACCContextIdHandler.java:61) в io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43) в io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43) в io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest (ServletInitialHandler.java:292) на io.undertow.servlet.handlers.ServletInitialHandler.access $ 100 (ServletInitialHandler.java:81) в io.undertow.servlet.handlers.ServletInitialHandler $ 2.call (ServletInitialHandler.java:138) в io.undertow.servlet.handlers.ServletInitialHandler $ 2.call (ServletInitialHandler.java:135) в io.undertow.servlet.core.ServletRequestContextThreadSetupAction $ 1.call (ServletRequestContextThreadSetupAction.java:48) в io.undertow.servlet.core.ContextClassLoaderSetupAction $ 1.call (ContextClassLoaderSetupAction.java:43) в io.undertow.servlet.api.LegacyThreadSetupActionWrapper $ 1.call (LegacyThreadSetupActionWrapper.java:44) в io.undertow.servlet.api.LegacyThreadSetupActionWrapper $ 1.call (LegacyThreadSetupActionWrapper.java:44) в io.undertow.servlet.api.LegacyThreadSetupActionWrapper $ 1.call (LegacyThreadSetupActionWrapper.java:44) в io.undertow.servlet.api.LegacyThreadSetupActionWrapper $ 1.call (LegacyThreadSetupActionWrapper.java:44) в io.undertow.servlet.api.LegacyThreadSetupActionWrapper $ 1.call (LegacyThreadSetupActionWrapper.java:44) в io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest (ServletInitialHandler.java:272) в io.undertow.servlet.handlers.ServletInitialHandler.access $ 000 (ServletInitialHandler.java:81) в io.undertow.servlet.handlers.ServletInitialHandler $ 1.handleRequest (ServletInitialHandler.java:104) в io.undertow.server.Connectors.executeRootHandler (Connectors.java:202) на io.undertow.server.HttpServerExchange $ 1.run (HttpServerExchange.java:805) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) at java.lang.Thread.run (Thread.java:748)

моя конфигурация web.xml:

    <servlet>
    <servlet-name>rserve-resteasy-servlet</servlet-name>
    <servlet-class>
        org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
    </servlet-class>
    <init-param>
        <param-name>resteasy.servlet.mapping.prefix</param-name>
        <param-value>/</param-value>
    </init-param>
    <!-- specify scanner implementation -->
    <init-param>
        <param-name>openApi.configuration.scannerClass</param-name>
        <param-value>io.swagger.v3.jaxrs2.integration.JaxrsAnnotationScanner</param-value>
    </init-param>
    <!-- pretty print -->
    <init-param>
        <param-name>openApi.configuration.prettyPrint</param-name>
        <param-value>true</param-value>
    </init-param>
    <!-- specify resource classes to scan -->
    <init-param>
        <param-name>openApi.configuration.resourceClasses</param-name>
        <param-value>
        rserve.web.RService,
        at.prismasolutions.test.RServeBean.evaluation.REvaluationObject,
        at.prismasolutions.test.RServeBean.evaluation.optima.REvaluationObservationObject,
        at.prismasolutions.test.render.RPlotFormatParam
        </param-value>
    </init-param>
</servlet>

Найден только файл rserve.web.RService, который находится в файле войны. Кто-нибудь сталкивался с настройкой чванства с использованием ресурсов из уха?

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