Hello!
I have a problem with generating model definitions from my model classes.
Here my models:
object DocumentsModels {
case class FColor(id: Int, name: String)
case class FSize(id: Int, name: String)
case class FType(id: Int, name: String, abr: Option[String])
case class FSort(id: Int, flowerTypeId: Int, name: String, abr: Option[String])
case class PlantCountry(id: Int, name: String, abr: Option[String])
case class Plant(id: Int, name: String, brand: Option[String])
case class Truck(id: Int, name: String)
case class User(id: Int, name: String)
case class Claim(id: Int, userId: Int, invoiceId: Long, invoiceHeadId: Long, status: Int, unixDate: Long,
plantationId: Option[Int], comment: Option[String], stems: Int, sum: BigDecimal, photoUrls: Option[Seq[String]])
//...
case class ClaimDetails(status: Int, timestamp: Long, id: Int, invoice: Invoice, invoiceDetailsHead: InvoiceDetails.Head,
claimInvoiceRows: Seq[ClaimDetails.Row], claimSubjectId: Option[Int], claimComment: Option[String],
photos: Option[Seq[ClaimDetails.Photo]],
flowerSorts: Seq[FSort], flowerTypes: Seq[FType], flowerSizes: Seq[FSize],
plantations: Seq[Plant], countries: Seq[PlantCountry], users: Seq[User])
object ClaimDetails {
case class Row(rowId: Int, claimStems: Int, claimPerStemPrice: BigDecimal)
case class Photo(id: String, url: String)
}
case class ClaimChanges(status: Int, clientId: Int, claimInvoiceId: Long, claimInvoiceHeadId: Long,
claimSubjectId: Option[Int], claimComment: Option[String], claimInvoiceRows: Seq[ClaimDetails.Row],
photos: Option[Seq[ClaimChanges.Photo]])
object ClaimChanges {
case class Photo(photoId: Option[String], fileName: Option[String])
}
case class InvoicesBundle(invoices: Seq[Invoice], users: Seq[User], plantations: Seq[Plant])
case class Invoice(id: Long, date: String, userId: Int, fb: BigDecimal, number: String, zipFile: String, fileName: String,
claims: Option[Seq[Claim]] = None)
}
}
I`m trying set swagger api operation like this:
@ApiOperation(value = "....", response = classOf[models.DocumentsModels.Invoice]) // working fine
@ApiOperation(value = "....", response = classOf[models.DocumentsModels.ClaimChanges]) // error
Here the stacktrace:
CreationException: Unable to create injector, see the following errors:
1) Error injecting constructor, java.lang.InternalError: Malformed class name
at play.modules.swagger.SwaggerPluginImpl.<init>(SwaggerPlugin.scala:35)
while locating play.modules.swagger.SwaggerPluginImpl
at play.modules.swagger.SwaggerModule.bindings(SwaggerModule.scala:11):
Binding(interface play.modules.swagger.SwaggerPlugin to ConstructionTarget(class play.modules.swagger.SwaggerPluginImpl) eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
while locating play.modules.swagger.SwaggerPlugin
1 error
com.google.inject.CreationException: Unable to create injector, see the following errors:
1) Error injecting constructor, java.lang.InternalError: Malformed class name
at play.modules.swagger.SwaggerPluginImpl.<init>(SwaggerPlugin.scala:35)
while locating play.modules.swagger.SwaggerPluginImpl
at play.modules.swagger.SwaggerModule.bindings(SwaggerModule.scala:11):
Binding(interface play.modules.swagger.SwaggerPlugin to ConstructionTarget(class play.modules.swagger.SwaggerPluginImpl) eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
while locating play.modules.swagger.SwaggerPlugin
1 error
com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:466)
com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:184)
com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
com.google.inject.Guice.createInjector(Guice.java:96)
com.google.inject.Guice.createInjector(Guice.java:84)
play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:181)
play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:123)
play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21)
play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1$$anonfun$2.apply(DevServerStart.scala:168)
play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1$$anonfun$2.apply(DevServerStart.scala:164)
play.utils.Threads$.withContextClassLoader(Threads.scala:21)
play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:164)
play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:131)
scala.Option.map(Option.scala:146)
play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:131)
play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:129)
scala.util.Success.flatMap(Try.scala:231)
play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:129)
play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:121)
scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Why it is happening? And how I can fixed this error?
Thanks