Unable to implement swagger 2.0 (aka OpenAPI 3.0) with JAX-RS-2.0 on weblogic 12.2.1.3

1,388 views
Skip to first unread message

Chaitanya Joglekar

unread,
May 12, 2018, 4:28:58 AM5/12/18
to Swagger
Hi,
I am using swagger-core 2.0 with jersey JAX-RS-2.0 in order to generate REST API's specifications. I have integrated swagger 2.0 with JAX-RS by following the steps given in-
 and I have also configured custom OpenAPI scanner to scan my resources. I have build a separate EAR having my custom scanner provided with all the libraries required to work with my application. But when I am trying to deploy the EAR I am getting following error in the server logs-

<May 11, 2018 11:43:54,161 AM UTC> <Error> <HTTP> <BEA-101017> <[ServletContext@1774997470[app:SwaggerEar module:swagger path:null spec-version:3.1]] Root cause of ServletException.

A MultiException has 1 exceptions.  They are:

1. java.lang.NoClassDefFoundError: Could not initialize class io.swagger.v3.jaxrs2.integration.resources.OpenApiResource

 

        at org.jvnet.hk2.internal.Utilities.justCreate(Utilities.java:1085)

        at org.jvnet.hk2.internal.ServiceLocatorImpl.create(ServiceLocatorImpl.java:978)

        at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1082)

        at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1074)

        at org.glassfish.jersey.internal.inject.Injections.getOrCreate(Injections.java:173)

        Truncated. see log file for complete stacktrace

Caused By: java.lang.NoClassDefFoundError: Could not initialize class io.swagger.v3.jaxrs2.integration.resources.OpenApiResource

        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

        at org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1375)

        Truncated. see log file for complete stacktrace

> 

<May 11, 2018 11:43:54,167 AM UTC> <Notice> <Diagnostics> <BEA-320068> <Watch "UncheckedException" in module "Module-FMWDFW" with severity "Notice" on server "obdxserver1" has triggered at May 11, 2018 11:43:54 AM UTC. Notification details:

WatchRuleType: Log

WatchRule: (log.severityString == 'Error') and ((log.messageId == 'WL-101020') or (log.messageId == 'WL-101017') or (log.messageId == 'WL-000802') or (log.messageId == 'BEA-101020') or (log.messageId == 'BEA-101017') or (log.messageId == 'BEA-000802'))

WatchData: MESSAGE = [ServletContext@1774997470[app:SwaggerEar module:swagger path:null spec-version:3.1]] Root cause of ServletException.

A MultiException has 1 exceptions.  They are:

1. java.lang.NoClassDefFoundError: Could not initialize class io.swagger.v3.jaxrs2.integration.resources.OpenApiResource

 

        at org.jvnet.hk2.internal.Utilities.justCreate(Utilities.java:1085)

        at org.jvnet.hk2.internal.ServiceLocatorImpl.create(ServiceLocatorImpl.java:978)

        at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1082)

        at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1074)

        at org.glassfish.jersey.internal.inject.Injections.getOrCreate(Injections.java:173)

        at org.glassfish.jersey.server.model.MethodHandler$ClassBasedMethodHandler.getInstance(MethodHandler.java:284)

        at org.glassfish.jersey.server.internal.routing.PushMethodHandlerRouter.apply(PushMethodHandlerRouter.java:74)

        at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:109)

        at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112)

        at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112)

        at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112)

        at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:92)

        at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:61)

        at org.glassfish.jersey.process.internal.Stages.process(Stages.java:197)

        at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:318)

        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)

        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)

        at org.glassfish.jersey.internal.Errors.process(Errors.java:315)

        at org.glassfish.jersey.internal.Errors.process(Errors.java:297)

        at org.glassfish.jersey.internal.Errors.process(Errors.java:267)

        at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)

        at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)

        at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)

        at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)

        at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)

        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)

        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)

        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)

        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)

        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)

        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)

        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)

        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)

        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)

        at oracle.security.jps.ee.http.JpsAbsFilter$3.run(JpsAbsFilter.java:172)

        at java.security.AccessController.doPrivileged(Native Method)

        at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)

        at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:650)

        at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:110)

        at oracle.security.jps.ee.http.JpsAbsFilter.doFilterInternal(JpsAbsFilter.java:273)

        at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:147)

        at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:94)

        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)

        at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:248)

        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)

        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3701)

        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3667)

        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)

        at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)

        at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)

        at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)

        at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2443)

        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2291)

        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2269)

        at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1703)

        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1663)

        at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:272)

        at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352)

        at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)

        at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)

        at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)

        at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:644)

        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:415)

        at weblogic.work.ExecuteThread.run(ExecuteThread.java:355)

Caused By: java.lang.NoClassDefFoundError: Could not initialize class io.swagger.v3.jaxrs2.integration.resources.OpenApiResource

        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

        at org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1375)

        at org.jvnet.hk2.internal.Utilities.justCreate(Utilities.java:1083)

        at org.jvnet.hk2.internal.ServiceLocatorImpl.create(ServiceLocatorImpl.java:978)

        at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1082)

        at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1074)

        at org.glassfish.jersey.internal.inject.Injections.getOrCreate(Injections.java:173)

        at org.glassfish.jersey.server.model.MethodHandler$ClassBasedMethodHandler.getInstance(MethodHandler.java:284)

        at org.glassfish.jersey.server.internal.routing.PushMethodHandlerRouter.apply(PushMethodHandlerRouter.java:74)

        at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:109)

        at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112)

        at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112)

        at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112)

        at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:92)

        at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:61)

        at org.glassfish.jersey.process.internal.Stages.process(Stages.java:197)

        at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:318)

        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)

        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)

        at org.glassfish.jersey.internal.Errors.process(Errors.java:315)

        at org.glassfish.jersey.internal.Errors.process(Errors.java:297)

        at org.glassfish.jersey.internal.Errors.process(Errors.java:267)

        at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)

        at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)

        at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)

        at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)

        at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)

        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)

        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)

        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)

        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)

        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)

        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137) 

can anybody tell that Is this the dependencies issue or an issue with weblogic class loader ??

Francesco Tumanischvili

unread,
May 13, 2018, 11:53:01 AM5/13/18
to Swagger
It's hard to say without some details about the project, sharing a sample reproducing the issue would help. It could indeed cause e.g. by EAR provided class not accessible from WAR, or some provided scope used or the like.

Reply all
Reply to author
Forward
0 new messages