Skip to content

Could not initialize class io.swagger.converter.ModelConverters #18

@aclowkey

Description

@aclowkey

Hi,

i'm trying to use swagger-play, but reached this exception when adding classOf, if I remove 'response' it does return a JSON.

I suspect this might be because of jackson incompatibility. There's a another lib I use which has jackson: 2.14 as transitive dependency. As I understand swagger-play would only support up to jackson 2.10.x.
Is there a way to overcome this?

Versions:

// build.sbt
scalaVersion := "2.12.16"
// plugins.sbt
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.7.9") 
// output of dependencyTree..
// various jackson-databind evicted by.
com.fasterxml.jackson.core:jackson-databind: 2.14.2

My code

 @ApiResponses(Array(
    new ApiResponse(
      code = 200,
      message = "The name of the pet",
      response = classOf[String]
    ),
  ))

The error:

[error] p.c.s.n.PlayRequestHandler - Cannot invoke the action
java.lang.RuntimeException: java.lang.NoClassDefFoundError: Could not initialize class io.swagger.converter.ModelConverters
	at play.api.mvc.ActionBuilder$$anon$10.apply(Action.scala:424)
	at play.api.mvc.Action.$anonfun$apply$2(Action.scala:95)
	at play.api.libs.streams.StrictAccumulator.$anonfun$mapFuture$4(Accumulator.scala:181)
	at scala.util.Try$.apply(Try.scala:213)
	at play.api.libs.streams.StrictAccumulator.$anonfun$mapFuture$3(Accumulator.scala:181)
	at scala.Function1.$anonfun$andThen$1(Function1.scala:57)
	at scala.Function1.$anonfun$andThen$1(Function1.scala:57)
	at scala.Function1.$anonfun$andThen$1(Function1.scala:57)
	at play.api.libs.streams.StrictAccumulator.run(Accumulator.scala:216)
	at play.api.libs.streams.FlattenedAccumulator.$anonfun$run$2(Accumulator.scala:240)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class io.swagger.converter.ModelConverters
	at play.modules.swagger.PlayReader.parseMethod(PlayReader.java:566)
	at play.modules.swagger.PlayReader.read(PlayReader.java:147)
	at play.modules.swagger.PlayReader.read(PlayReader.java:76)
	at play.modules.swagger.PlayReader.read(PlayReader.java:70)
	at play.modules.swagger.ApiListingCache.$anonfun$listing$1(ApiListingCache.scala:17)
	at scala.collection.mutable.HashMap.getOrElseUpdate(HashMap.scala:86)
	at play.modules.swagger.ApiListingCache.listing(ApiListingCache.scala:13)
	at controllers.SwaggerBaseApiController.getResourceListing(ApiHelpController.scala:69)
	at controllers.SwaggerBaseApiController.getResourceListing$(ApiHelpController.scala:55)
	at controllers.ApiHelpController.getResourceListing(ApiHelpController.scala:30)
[error] application - 

! @83odeke85 - Internal server error, for (GET) [/swagger.json] ->
 
play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[RuntimeException: java.lang.NoClassDefFoundError: Could not initialize class io.swagger.converter.ModelConverters]]
	at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:344)
	at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:263)
	at play.core.server.netty.PlayRequestHandler$$anonfun$play$core$server$netty$PlayRequestHandler$$handleAction$1.applyOrElse(PlayRequestHandler.scala:303)
	at play.core.server.netty.PlayRequestHandler$$anonfun$play$core$server$netty$PlayRequestHandler$$handleAction$1.applyOrElse(PlayRequestHandler.scala:300)
	at scala.concurrent.Future.$anonfun$recoverWith$1(Future.scala:417)
	at scala.concurrent.impl.Promise.$anonfun$transformWith$1(Promise.scala:41)
	at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)
	at play.api.libs.streams.Execution$trampoline$.execute(Execution.scala:70)
	at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:72)
	at scala.concurrent.impl.Promise$DefaultPromise.$anonfun$tryComplete$1(Promise.scala:288)
Caused by: java.lang.RuntimeException: java.lang.NoClassDefFoundError: Could not initialize class io.swagger.converter.ModelConverters
	at play.api.mvc.ActionBuilder$$anon$10.apply(Action.scala:424)
	at play.api.mvc.Action.$anonfun$apply$2(Action.scala:95)
	at play.api.libs.streams.StrictAccumulator.$anonfun$mapFuture$4(Accumulator.scala:181)
	at scala.util.Try$.apply(Try.scala:213)
	at play.api.libs.streams.StrictAccumulator.$anonfun$mapFuture$3(Accumulator.scala:181)
	at scala.Function1.$anonfun$andThen$1(Function1.scala:57)
	at scala.Function1.$anonfun$andThen$1(Function1.scala:57)
	at scala.Function1.$anonfun$andThen$1(Function1.scala:57)
	at play.api.libs.streams.StrictAccumulator.run(Accumulator.scala:216)
	at play.api.libs.streams.FlattenedAccumulator.$anonfun$run$2(Accumulator.scala:240)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class io.swagger.converter.ModelConverters
	at play.modules.swagger.PlayReader.parseMethod(PlayReader.java:566)
	at play.modules.swagger.PlayReader.read(PlayReader.java:147)
	at play.modules.swagger.PlayReader.read(PlayReader.java:76)
	at play.modules.swagger.PlayReader.read(PlayReader.java:70)
	at play.modules.swagger.ApiListingCache.$anonfun$listing$1(ApiListingCache.scala:17)
	at scala.collection.mutable.HashMap.getOrElseUpdate(HashMap.scala:86)
	at play.modules.swagger.ApiListingCache.listing(ApiListingCache.scala:13)
	at controllers.SwaggerBaseApiController.getResourceListing(ApiHelpController.scala:69)
	at controllers.SwaggerBaseApiController.getResourceListing$(ApiHelpController.scala:55)
	at controllers.ApiHelpController.getResourceListing(ApiHelpController.scala:30)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions