swagger-api / swagger-core

Examples and server integrations for generating the Swagger API Specification, which enables easy access to your REST API
http://swagger.io
Apache License 2.0
7.37k stars 2.17k forks source link

Swagger gradle plugin error : java.util.ServiceConfigurationError ..JaxbAnnotationModule not a subtype #3251

Open vikrantk365 opened 5 years ago

vikrantk365 commented 5 years ago

I'm using swagger gradle plugin to generate Open API 3.0 spec for a microservice It was working find till I tried to upgrade the microservice to Spring Boot 2. I'm getting following exception

 org.gradle.api.GradleException
        at io.swagger.v3.plugins.gradle.tasks.ResolveTask.resolve(ResolveTask.java:406)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:801)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:768)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
        ... 31 more
Caused by: java.lang.reflect.InvocationTargetException
        at io.swagger.v3.plugins.gradle.tasks.ResolveTask.resolve(ResolveTask.java:388)
        ... 45 more
Caused by: java.util.ServiceConfigurationError: com.fasterxml.jackson.databind.Module: Provider com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule not a subtype
        at com.fasterxml.jackson.databind.ObjectMapper.findModules(ObjectMapper.java:994)
        at com.fasterxml.jackson.databind.ObjectMapper.findModules(ObjectMapper.java:978)
        at com.fasterxml.jackson.databind.ObjectMapper.findAndRegisterModules(ObjectMapper.java:1028)
        at net.logstash.logback.composite.CompositeJsonFormatter.createJsonFactory(CompositeJsonFormatter.java:129)
        at net.logstash.logback.composite.CompositeJsonFormatter.start(CompositeJsonFormatter.java:103)
        at net.logstash.logback.LogstashFormatter.start(LogstashFormatter.java:154)
        at net.logstash.logback.encoder.CompositeJsonEncoder.start(CompositeJsonEncoder.java:211)
        at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:161)
        at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309)
        at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193)
        at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:179)
        at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
        at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:165)
        at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:152)
        at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)
        at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
        at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)
        at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)
        at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
        at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
        at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
        at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
        at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
        at io.swagger.v3.oas.integration.GenericOpenApiContext.<clinit>(GenericOpenApiContext.java:30)
        at io.swagger.v3.jaxrs2.integration.JaxrsOpenApiContextBuilder.buildContext(JaxrsOpenApiContextBuilder.java:27)
        at io.swagger.v3.jaxrs2.integration.SwaggerLoader.resolve(SwaggerLoader.java:216)
        ... 46 more

I tried explicitly specifying com.fasterxml.jackson.core:jackson-annotations:2.9.9 to use latest version and also tried both versions 2.0.7 and 2.0.8 for the plugin. But nothing seems to work. Also couldn't find any solution on online forums as well. Could you help with this?

vikrantk365 commented 5 years ago

Found the cause. It was this dependency net.logstash.logback:logstash-logback-encoder As part of upgrade, i had also upgraded this dependency and versions 5.3 onwards cause this issue. So I downgraded it to 5.2. Not sure though whether the issue is in encoder library or swagger plugin.