В настоящее время я пытаюсь задокументировать существующий 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, который находится в файле войны. Кто-нибудь сталкивался с настройкой чванства с использованием ресурсов из уха?