Skip to content
This repository has been archived by the owner on Sep 14, 2022. It is now read-only.

Play 2.5 and Unable to create injector #67

Open
poornerd opened this issue Mar 9, 2016 · 49 comments
Open

Play 2.5 and Unable to create injector #67

poornerd opened this issue Mar 9, 2016 · 49 comments

Comments

@poornerd
Copy link

poornerd commented Mar 9, 2016

I added swagger-play2 - 1.5.1 as described on this page: https://github.com/swagger-api/swagger-play/tree/master/play-2.4/swagger-play2

BUT, I am getting this error, and can't get rid of it - does anyone else have this problem?

CreationException: Unable to create injector, see the following errors:

1) Error injecting constructor, java.lang.AbstractMethodError: controllers.ApiHelpController.play$api$mvc$Results$_setter_$TooManyRequests_$eq(Lplay/api/mvc/Results$Status;)V
  at controllers.ApiHelpController.<init>(ApiHelpController.scala:68)
  at play.modules.swagger.SwaggerModule.bindings(SwaggerModule.scala:12):
Binding(class controllers.ApiHelpController to self eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
  while locating controllers.ApiHelpController
    for parameter 4 at router.Routes.<init>(Routes.scala:52)
  while locating router.Routes
  while locating play.api.inject.RoutesProvider
  while locating play.api.routing.Router
    for parameter 1 at play.modules.swagger.SwaggerPluginImpl.<init>(SwaggerPlugin.scala:33)
  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
Caused by: java.lang.AbstractMethodError: controllers.ApiHelpController.play$api$mvc$Results$_setter_$TooManyRequests_$eq(Lplay/api/mvc/Results$Status;)V
    at play.api.mvc.Results$class.$init$(Results.scala:605)
    at controllers.SwaggerBaseApiController.<init>(ApiHelpController.scala:105)
    at controllers.ApiHelpController.<init>(ApiHelpController.scala:68)
    at controllers.ApiHelpController$$FastClassByGuice$$855b6c80.newInstance(<generated>)
    at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
    at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:105)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
    at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
    at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
    at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
    at play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:405)
    at play.api.inject.RoutesProvider$$anonfun$2.apply(BuiltinModule.scala:82)
    at play.api.inject.RoutesProvider$$anonfun$2.apply(BuiltinModule.scala:82)
    at scala.Option.fold(Option.scala:158)
    at play.api.inject.RoutesProvider.get$lzycompute(BuiltinModule.scala:82)
    at play.api.inject.RoutesProvider.get(BuiltinModule.scala:78)
    at play.api.inject.RoutesProvider.get(BuiltinModule.scala:77)
    at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
    at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72)
    at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
    at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62)
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
    at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
    at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
    at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
    at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
    at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
    at com.google.inject.Guice.createInjector(Guice.java:96)
    at com.google.inject.Guice.createInjector(Guice.java:84)
    at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:181)
    at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:123)
    at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1$$anonfun$2.apply(DevServerStart.scala:158)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1$$anonfun$2.apply(DevServerStart.scala:155)
    at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:155)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:126)
    at scala.Option.map(Option.scala:146)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:126)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:124)
    at scala.util.Success.flatMap(Try.scala:231)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:124)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:116)
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
    at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

2) Error injecting constructor, java.lang.AbstractMethodError
  at controllers.ApiHelpController.<init>(ApiHelpController.scala:68)
  at play.modules.swagger.SwaggerModule.bindings(SwaggerModule.scala:12):
Binding(class controllers.ApiHelpController to self eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
  while locating controllers.ApiHelpController
    for parameter 4 at router.Routes.<init>(Routes.scala:52)
  while locating router.Routes
  while locating play.api.inject.RoutesProvider
  while locating play.api.routing.Router
    for parameter 0 at play.api.http.JavaCompatibleHttpRequestHandler.<init>(HttpRequestHandler.scala:200)
  while locating play.api.http.JavaCompatibleHttpRequestHandler
  while locating play.api.http.HttpRequestHandler
    for parameter 4 at play.api.DefaultApplication.<init>(Application.scala:220)
  at play.api.DefaultApplication.class(Application.scala:220)
  while locating play.api.DefaultApplication
  while locating play.api.Application
    for parameter 2 at play.modules.swagger.SwaggerPluginImpl.<init>(SwaggerPlugin.scala:33)
  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
Caused by: java.lang.AbstractMethodError
    at play.api.mvc.Results$class.$init$(Results.scala:605)
    at controllers.SwaggerBaseApiController.<init>(ApiHelpController.scala:105)
    at controllers.ApiHelpController.<init>(ApiHelpController.scala:68)
    at controllers.ApiHelpController$$FastClassByGuice$$855b6c80.newInstance(<generated>)
    at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
    at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:105)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
    at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
    at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
    at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
    at play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:405)
    at play.api.inject.RoutesProvider$$anonfun$2.apply(BuiltinModule.scala:82)
    at play.api.inject.RoutesProvider$$anonfun$2.apply(BuiltinModule.scala:82)
    at scala.Option.fold(Option.scala:158)
    at play.api.inject.RoutesProvider.get$lzycompute(BuiltinModule.scala:82)
    at play.api.inject.RoutesProvider.get(BuiltinModule.scala:78)
    at play.api.inject.RoutesProvider.get(BuiltinModule.scala:77)
    at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
    at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72)
    at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
    at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62)
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
    at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
    at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
    at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
    at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
    at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
    at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
    at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
    at com.google.inject.Guice.createInjector(Guice.java:96)
    at com.google.inject.Guice.createInjector(Guice.java:84)
    at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:181)
    at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:123)
    at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1$$anonfun$2.apply(DevServerStart.scala:158)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1$$anonfun$2.apply(DevServerStart.scala:155)
    at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:155)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:126)
    at scala.Option.map(Option.scala:146)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:126)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:124)
    at scala.util.Success.flatMap(Try.scala:231)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:124)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:116)
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
    at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

3) Error injecting constructor, java.lang.AbstractMethodError
  at controllers.ApiHelpController.<init>(ApiHelpController.scala:68)
  at play.modules.swagger.SwaggerModule.bindings(SwaggerModule.scala:12):
Binding(class controllers.ApiHelpController to self eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
  while locating controllers.ApiHelpController
Caused by: java.lang.AbstractMethodError
    at play.api.mvc.Results$class.$init$(Results.scala:605)
    at controllers.SwaggerBaseApiController.<init>(ApiHelpController.scala:105)
    at controllers.ApiHelpController.<init>(ApiHelpController.scala:68)
    at controllers.ApiHelpController$$FastClassByGuice$$855b6c80.newInstance(<generated>)
    at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
    at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:105)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
    at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
    at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
    at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
    at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
    at com.google.inject.Guice.createInjector(Guice.java:96)
    at com.google.inject.Guice.createInjector(Guice.java:84)
    at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:181)
    at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:123)
    at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1$$anonfun$2.apply(DevServerStart.scala:158)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1$$anonfun$2.apply(DevServerStart.scala:155)
    at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:155)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:126)
    at scala.Option.map(Option.scala:146)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:126)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:124)
    at scala.util.Success.flatMap(Try.scala:231)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:124)
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:116)
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
    at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

3 errors
@frne
Copy link

frne commented Mar 9, 2016

Probably cause they removed the plugin API in 2.5: https://playframework.com/documentation/2.5.x/Migration25#Removed-Plugins-API

// possibly duplicates #66

@poornerd
Copy link
Author

poornerd commented Mar 9, 2016

could by, but I did add this to my application.conf per instructions: play.modules.enabled += "play.modules.swagger.SwaggerModule"

@poornerd
Copy link
Author

poornerd commented Mar 9, 2016

Is this change already in 1.5.1? benmccann@234eb63

It removes the Plugin Support and adds it as a Module.

@frne
Copy link

frne commented Mar 10, 2016

@poornerd Right. Just identified another reason...

Play removed/changed iteratees in 2.5, so something in the play-2.5/swagger-play2/app/controllers/ApiHelpController.scala:206 fails.

Imgur

Source: https://www.playframework.com/documentation/2.5.x/Highlights25#New-streaming-API-based-on-Akka-Streams

Trying to bugfix it and provide a working version for 2.5... Please provide me with any imputs, if you have some ;)

@frne
Copy link

frne commented Mar 10, 2016

In 2.5 the body parameter of a play.api.mvc.Result must be a play.api.http.HttpEntity.
In 2.4 a play.api.libs.iteratee.Enumerator[Array[Byte]] could be used.

IMHO, we have to rewrite the ApiHelpController streaming part from Iteratees to reactive streams to enable support for 2.5...

Source:

EDIT:

Application lifecycle has also changed. This results in rewriting the addStopHook in play.modules.swagger.SwaggerApplicationLoader

Any inputs @rayyildiz @poornerd @fehguy ?

@frne
Copy link

frne commented Mar 10, 2016

Just seen, that the stop-hook is already implemented in the SwaggerModule.

Is the play.modules.swagger.SwaggerApplicationLoader needed anymore, or can it be safely removed?

frne pushed a commit to frne/swagger-play that referenced this issue Mar 10, 2016
@frne frne mentioned this issue Mar 10, 2016
@frne
Copy link

frne commented Mar 10, 2016

Just opened a PR in #68. Please post any further 2.5 related stuff there, if possible ;)

@cipacda
Copy link
Contributor

cipacda commented Jun 29, 2016

Opened an update PR in #88 which currently seems to work perfectly for me.

@donpoeju
Copy link

I met the same problem, I don't know how to solve,I need help,My email dev@bzdriver.com.

@uryyyyyyy
Copy link

I met the same problem too. I use swagger-play2 1.5.2 with play 2.5.4

@martinscmb
Copy link

martinscmb commented Aug 30, 2016

Hi, is there any update to fix that problem in play 2.5.x?

@telmperez
Copy link

+1 is there an update to fix this problem in play 2.5.x?

@bcheg
Copy link

bcheg commented Sep 7, 2016

I am running into the same problem with play 2.5.4 with swagger-play2 1.5.2

@michalzubkowicz
Copy link

Same problem here, Play 2.5.6 and swagger-play2 1.5.2

@deepakbapat
Copy link

deepakbapat commented Sep 21, 2016

Same problem, Play 2.5.6 and swagger-play2 1.5.2. Does anyone have a forked solution for this? Is there any chance, 1.5.3 will be added to the maven repository?

@michalzubkowicz
Copy link

michalzubkowicz commented Sep 22, 2016

If you want use swagger with play 2.5.6 you can use our temporary fork

git clone https://michal_zubkowicz@bitbucket.org/michal_zubkowicz/swagger-play.git
cd swagger-play/play-2.5/swagger-play2
/opt/sbt/bin/sbt ++2.11.7 publish-local

and then in build.sbt:
"io.swagger" %% "swagger-play2" % "1.6.0-BTG"

@fehguy
Copy link
Contributor

fehguy commented Sep 22, 2016

Hi, if a PR is ready to update the library I can push it to maven central.

@cretz
Copy link

cretz commented Sep 22, 2016

@fehguy - I believe in #97 there is some want to release ANY version that works with Play 2.5 to Maven for a starter. That would likely solve this problem too.

Can you release/deploy at least what's already merged?

@iRhysBradbury
Copy link

iRhysBradbury commented Oct 24, 2016

Experiencing the same issues, Is this resolved?

@mach-kernel
Copy link

Experiencing the same issue here. If anybody needs a temporary fix, use this guide and @michalzubkowicz's fork. Would really be nice to not have to go through the whole song and dance.

@akhettar-zz
Copy link

Hi

I am getting the same error on Play 2.5.4 with ( "io.swagger" %% "swagger-play2" % "1.5.3"). Any idea how to get it working is really appreciated.

Regards,

Ayache

@mach-kernel
Copy link

@akhettar I solved this by using the fork made by @michalzubkowicz above, and that guide which tells you how to pull sbt dependencies from Git. I suspect there is a better solution given that this is a few months old already, try looking for the latest snapshot!

@0xVesion
Copy link

@mach-kernel I tried cloning the repo but i had no access. Any advice would be appreciated

Cloning into 'swagger-play'...
Permission denied (publickey).
fatal: Could not read from remote repository.

@michalzubkowicz
Copy link

michalzubkowicz commented Jan 24, 2017

Hi.
I've accidentally revoked access to repository. Please try with this new url.
git clone https://michal_zubkowicz@bitbucket.org/michal_zubkowicz/swagger-play.git

I've updated original answer also.
Sorry for inconvenience ;)

@0xVesion
Copy link

@michalzubkowicz Sorry but it still dosnt work for me 😢

Cloning into 'swagger-play'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

@michalzubkowicz
Copy link

Hmm, it looks like some kind of bitbucket bug, this repository is public for sure.

Try to clone by https, it should work then:
git clone https://michal_zubkowicz@bitbucket.org/michal_zubkowicz/swagger-play.git

@0xVesion
Copy link

@michalzubkowicz I was able to clone the repo via https . Thank you very much and have a nice day.

@0xVesion
Copy link

@michalzubkowicz It seems like you used scala 2.10 for the module. Is there a work around to make it compatible with my 2.11.7 project?

@michalzubkowicz
Copy link

I'm using it in few 2.11.8 projects. What's the problem?

@0xVesion
Copy link

@michalzubkowicz I'm sorry. I guess I dont fully understand how to use a local dependency with sbt on windows.

@michalzubkowicz
Copy link

You need to ask some Windows user :(, but did you ran sbt command wit publish-local for sure?

cd swagger-play/play-2.5/swagger-play2
/opt/sbt/bin/sbt ++2.11.7 publish-local

@0xVesion
Copy link

@michalzubkowicz Thank you very much. I forgot to use the "++2.11.7" argument so thats why it tried to use Scala 2.10.
Is there any information on the release schedule for the official update?

@sshanamplify
Copy link

@michalzubkowicz I tried your branch 1.6.0-BTG locally with play 2.5.6, doesn't work. Below is the error:
) Error injecting constructor, java.lang.NullPointerException
at play.modules.swagger.SwaggerPluginImpl.(SwaggerPlugin.scala:39)
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

@michalzubkowicz
Copy link

@sshanamplify , please re - read carefully documentation of swagger plugin. For sure it's working, I've been using it with that version of play for a while.

@michalzubkowicz
Copy link

michalzubkowicz commented Apr 18, 2017

If somebody is interested there is working for me version with Play 2.5.12:
libraryDependencies += "io.swagger" % "swagger-play2_2.11" % "1.5.3"

@namco1992
Copy link

Hi @michalzubkowicz ,

I just tried your branch 1.6.0-BTG and still no good. Any updates now? I am using scala 2.11.8 and play 2.5.10.

CreationException: Unable to create injector, see the following errors:

1) Error injecting constructor, java.util.ServiceConfigurationError: io.swagger.converter.ModelConverter: Provider io.swagger.scala.converter.SwaggerScalaModelConverter could not be instantiated
  at play.modules.swagger.SwaggerPluginImpl.<init>(SwaggerPlugin.scala:39)
  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

@michalzubkowicz
Copy link

@namco1992 , why don't you try official version? It's working now.

@cpoissonnier
Copy link

The version 1.5.3 (which is not tagged) works.

I think this issue could be closed

mikeumus added a commit to mikeumus/swagger-play that referenced this issue Nov 28, 2017
There is much confusion from this and open issues still.

See:
- swagger-api#67 (comment)
- swagger-api#95
@Lveastcoast
Copy link

hi iam having an error while starting server

[info] application - ApplicationTimer demo: Starting application at 2017-12-15T08:29:19.146Z.
Oops, cannot start the server.
com.google.inject.CreationException: Unable to create injector, see the following errors:

  1. No implementation for play.modules.reactivemongo.ReactiveMongoApi was bound.
    while locating play.modules.reactivemongo.ReactiveMongoApi
    for parameter 0 at job.JobResult.(JobResult.scala:13)
    while locating job.JobResult
    for parameter 0 at controllers.DBConnectionController.(DBConnectionController.scala:13)
    while locating controllers.DBConnectionController
    for parameter 1 at router.Routes.(Routes.scala:31)
    while locating router.Routes
    while locating play.api.inject.RoutesProvider
    while locating play.api.routing.Router
    for parameter 0 at play.api.http.JavaCompatibleHttpRequestHandler.(HttpRequestHandler.scala:201)
    while locating play.api.http.JavaCompatibleHttpRequestHandler
    while locating play.api.http.HttpRequestHandler
    for parameter 4 at play.api.DefaultApplication.(Application.scala:221)
    at play.api.DefaultApplication.class(Application.scala:221)
    while locating play.api.DefaultApplication
    while locating play.api.Application

  2. No implementation for play.modules.reactivemongo.ReactiveMongoApi was bound.
    while locating play.modules.reactivemongo.ReactiveMongoApi
    for parameter 0 at job.JobResult.(JobResult.scala:13)
    while locating job.JobResult
    for parameter 0 at services.DBConnectionService.(DBConnectionService.scala:22)
    while locating services.DBConnectionService
    for parameter 1 at controllers.DBConnectionController.(DBConnectionController.scala:13)
    while locating controllers.DBConnectionController
    for parameter 1 at router.Routes.(Routes.scala:31)
    while locating router.Routes
    while locating play.api.inject.RoutesProvider
    while locating play.api.routing.Router
    for parameter 0 at play.api.http.JavaCompatibleHttpRequestHandler.(HttpRequestHandler.scala:201)
    while locating play.api.http.JavaCompatibleHttpRequestHandler
    while locating play.api.http.HttpRequestHandler
    for parameter 4 at play.api.DefaultApplication.(Application.scala:221)
    at play.api.DefaultApplication.class(Application.scala:221)
    while locating play.api.DefaultApplication
    while locating play.api.Application

  3. No implementation for play.modules.reactivemongo.ReactiveMongoApi was bound.
    while locating play.modules.reactivemongo.ReactiveMongoApi
    for parameter 0 at job.JobResult.(JobResult.scala:13)
    while locating job.JobResult
    for parameter 0 at controllers.DBConnectionController.(DBConnectionController.scala:13)
    while locating controllers.DBConnectionController
    for parameter 1 at router.Routes.(Routes.scala:31)
    while locating router.Routes
    while locating play.api.inject.RoutesProvider
    while locating play.api.routing.Router
    for parameter 0 at play.api.http.JavaCompatibleHttpRequestHandler.(HttpRequestHandler.scala:201)
    while locating play.api.http.JavaCompatibleHttpRequestHandler
    while locating play.api.http.HttpRequestHandler
    for parameter 4 at play.api.DefaultApplication.(Application.scala:221)
    at play.api.DefaultApplication.class(Application.scala:221)
    while locating play.api.DefaultApplication
    while locating play.api.Application
    for parameter 0 at play.DefaultApplication.(DefaultApplication.java:30)
    at play.DefaultApplication.class(DefaultApplication.java:30)
    while locating play.DefaultApplication
    while locating play.Application

  4. No implementation for play.modules.reactivemongo.ReactiveMongoApi was bound.
    while locating play.modules.reactivemongo.ReactiveMongoApi
    for parameter 0 at job.JobResult.(JobResult.scala:13)
    while locating job.JobResult
    for parameter 0 at services.DBConnectionService.(DBConnectionService.scala:22)
    while locating services.DBConnectionService
    for parameter 1 at controllers.DBConnectionController.(DBConnectionController.scala:13)
    while locating controllers.DBConnectionController
    for parameter 1 at router.Routes.(Routes.scala:31)
    while locating router.Routes
    while locating play.api.inject.RoutesProvider
    while locating play.api.routing.Router
    for parameter 0 at play.api.http.JavaCompatibleHttpRequestHandler.(HttpRequestHandler.scala:201)
    while locating play.api.http.JavaCompatibleHttpRequestHandler
    while locating play.api.http.HttpRequestHandler
    for parameter 4 at play.api.DefaultApplication.(Application.scala:221)
    at play.api.DefaultApplication.class(Application.scala:221)
    while locating play.api.DefaultApplication
    while locating play.api.Application
    for parameter 0 at play.DefaultApplication.(DefaultApplication.java:30)
    at play.DefaultApplication.class(DefaultApplication.java:30)
    while locating play.DefaultApplication
    while locating play.Application

  5. No implementation for play.modules.reactivemongo.ReactiveMongoApi was bound.
    while locating play.modules.reactivemongo.ReactiveMongoApi
    for parameter 0 at job.JobResult.(JobResult.scala:13)
    while locating job.JobResult
    for parameter 0 at controllers.DBConnectionController.(DBConnectionController.scala:13)
    while locating controllers.DBConnectionController
    for parameter 1 at router.Routes.(Routes.scala:31)
    while locating router.Routes
    while locating play.api.inject.RoutesProvider
    while locating play.api.routing.Router
    for parameter 0 at play.api.http.JavaCompatibleHttpRequestHandler.(HttpRequestHandler.scala:201)
    while locating play.api.http.JavaCompatibleHttpRequestHandler
    while locating play.api.http.HttpRequestHandler
    for parameter 4 at play.api.DefaultApplication.(Application.scala:221)
    at play.api.DefaultApplication.class(Application.scala:221)
    while locating play.api.DefaultApplication

  6. No implementation for play.modules.reactivemongo.ReactiveMongoApi was bound.
    while locating play.modules.reactivemongo.ReactiveMongoApi
    for parameter 0 at job.JobResult.(JobResult.scala:13)
    while locating job.JobResult
    for parameter 0 at services.DBConnectionService.(DBConnectionService.scala:22)
    while locating services.DBConnectionService
    for parameter 1 at controllers.DBConnectionController.(DBConnectionController.scala:13)
    while locating controllers.DBConnectionController
    for parameter 1 at router.Routes.(Routes.scala:31)
    while locating router.Routes
    while locating play.api.inject.RoutesProvider
    while locating play.api.routing.Router
    for parameter 0 at play.api.http.JavaCompatibleHttpRequestHandler.(HttpRequestHandler.scala:201)
    while locating play.api.http.JavaCompatibleHttpRequestHandler
    while locating play.api.http.HttpRequestHandler
    for parameter 4 at play.api.DefaultApplication.(Application.scala:221)
    at play.api.DefaultApplication.class(Application.scala:221)
    while locating play.api.DefaultApplication

  7. No implementation for play.modules.reactivemongo.ReactiveMongoApi was bound.
    while locating play.modules.reactivemongo.ReactiveMongoApi
    for parameter 0 at job.JobResult.(JobResult.scala:13)
    while locating job.JobResult
    for parameter 0 at controllers.DBConnectionController.(DBConnectionController.scala:13)
    while locating controllers.DBConnectionController
    for parameter 1 at router.Routes.(Routes.scala:31)
    while locating router.Routes
    while locating play.api.inject.RoutesProvider
    while locating play.api.routing.Router
    for parameter 0 at play.api.http.JavaCompatibleHttpRequestHandler.(HttpRequestHandler.scala:201)
    while locating play.api.http.JavaCompatibleHttpRequestHandler
    while locating play.api.http.HttpRequestHandler
    for parameter 4 at play.api.DefaultApplication.(Application.scala:221)
    at play.api.DefaultApplication.class(Application.scala:221)
    while locating play.api.DefaultApplication
    while locating play.api.Application
    for parameter 0 at play.DefaultApplication.(DefaultApplication.java:30)
    at play.DefaultApplication.class(DefaultApplication.java:30)
    while locating play.DefaultApplication

  8. No implementation for play.modules.reactivemongo.ReactiveMongoApi was bound.
    while locating play.modules.reactivemongo.ReactiveMongoApi
    for parameter 0 at job.JobResult.(JobResult.scala:13)
    while locating job.JobResult
    for parameter 0 at services.DBConnectionService.(DBConnectionService.scala:22)
    while locating services.DBConnectionService
    for parameter 1 at controllers.DBConnectionController.(DBConnectionController.scala:13)
    while locating controllers.DBConnectionController
    for parameter 1 at router.Routes.(Routes.scala:31)
    while locating router.Routes
    while locating play.api.inject.RoutesProvider
    while locating play.api.routing.Router
    for parameter 0 at play.api.http.JavaCompatibleHttpRequestHandler.(HttpRequestHandler.scala:201)
    while locating play.api.http.JavaCompatibleHttpRequestHandler
    while locating play.api.http.HttpRequestHandler
    for parameter 4 at play.api.DefaultApplication.(Application.scala:221)
    at play.api.DefaultApplication.class(Application.scala:221)
    while locating play.api.DefaultApplication
    while locating play.api.Application
    for parameter 0 at play.DefaultApplication.(DefaultApplication.java:30)
    at play.DefaultApplication.class(DefaultApplication.java:30)
    while locating play.DefaultApplication

8 errors
at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:466)
at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:184)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
at com.google.inject.Guice.createInjector(Guice.java:96)
at com.google.inject.Guice.createInjector(Guice.java:84)
at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:181)
at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:123)
at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21)
at play.core.server.ProdServerStart$.start(ProdServerStart.scala:47)
at play.core.server.ProdServerStart$.main(ProdServerStart.scala:22)
at play.core.server.ProdServerStart.main(ProdServerStart.scala)

@michalzubkowicz
Copy link

@Lveastcoast , I think it's not this case. It's problem with Your app: "No implementation for play.modules.reactivemongo.ReactiveMongoApi was bound."

@Lveastcoast
Copy link

@michalzubkowicz but it runs in sbt run

@Lveastcoast
Copy link

@michalzubkowicz

import javax.inject._
import com.bmw.smartInsight.controllers.ControllerImplicits._
import com.bmw.smartInsight.entities._
import com.bmw.smartInsight.job.JobResult
import com.bmw.smartInsight.services.DBConnectionService
import play.api.libs.concurrent.Execution.Implicits.defaultContext
import play.api.libs.json.{Json, }
import play.api.mvc.

import scala.concurrent.Future

class DBConnectionController @Inject()(jobResult: JobResult, dBConnectionService: DBConnectionService) extends Controller {

def index = Action { implicit request =>
Ok(Json.obj("status" -> "Hello World"))
}

def spiderData = Action.async(parse.json) { implicit request =>
val columns = Json.fromJsonSpiderEntity
columns match {
case JsSuccess(columns: SpiderEntity, _) => {
dBConnectionService.getSpiderData(columns) map { result =>
Ok(Json.toJson(result))
}
}
case e: JsError => handleValidationError(e)
}
}

def getLoadData = Action.async(parse.json) { implicit request =>
val connection = Json.fromJsonLoadEntity
connection match {
case JsSuccess(connection: LoadEntity, _) => {
dBConnectionService.getLoadData(connection) map { result =>
Ok(result)
}
}
case e: JsError => handleValidationError(e)
}
}

def getLoadFilter = Action.async(parse.json) { implicit request =>
val connection = Json.fromJsonMapEntity
connection match {
case JsSuccess(connection: MapEntity, _) => {
dBConnectionService.getLoadFilter(connection) map { result =>
Ok(result)
}
}
case e: JsError => handleValidationError(e)
}
}

def getConfigData = Action.async(parse.json) { implicit request =>
val connection = Json.fromJsonPostEntity
connection match {
case JsSuccess(connection: PostEntity, _) => {
dBConnectionService.getConfigData(connection) map { result =>
Ok(result)
}
}
case e: JsError => handleValidationError(e)
}
}

def getMapData = Action.async(parse.json) {
println("Controller")
implicit request =>
val columns = Json.fromJsonMapEntity
columns match {
case JsSuccess(columns: MapEntity, _) => {
dBConnectionService.getMapData(columns) map { result =>
Ok(Json.toJson(result))
}
}
case e: JsError => handleValidationError(e)
}
}

def statsData = Action.async(parse.json) { implicit request =>
val columns = Json.fromJsonFilterEntity
columns match {
case JsSuccess(columns: FilterEntity, _) => {
dBConnectionService.statsData(columns) map { result =>
Ok(Json.toJson(result))
}
}
case e: JsError => handleValidationError(e)
}
}

def groupStats = Action.async(parse.json) { implicit request =>
val columns = Json.fromJsonGroupEntity
columns match {
case JsSuccess(columns: GroupEntity, _) => {
dBConnectionService.groupStats(columns) map { result =>
Ok(Json.toJson(result))
}
}
case e: JsError => handleValidationError(e)
}
}

def getClusterData = Action.async(parse.json) {
println("Controller")
implicit request =>
val columns = Json.fromJsonMapEntity
columns match {
case JsSuccess(columns: MapEntity, _) => {
dBConnectionService.getClusterData(columns) map { result =>
Ok(Json.toJson(result))
}
}
case e: JsError => handleValidationError(e)
}
}

def parallelData = Action.async(parse.json) { implicit request =>
val columns = Json.fromJsonList[ParallelEntitywithKmeans]
columns match {
case JsSuccess(columns: List[ParallelEntitywithKmeans], _) => dBConnectionService.parallelData(columns) map { result =>
Ok(Json.toJson(result))
}
case e: JsError => handleValidationError(e)
}
}

def overlayData = Action.async(parse.json) { implicit request => // val connection = Json.fromJsonPostEntity
val columns = Json.fromJsonSpiderEntity
columns match {
case JsSuccess(columns: SpiderEntity, _) => {
dBConnectionService.getOverlayData(columns) map { result =>
Ok(Json.toJson(result))
}
}
case e: JsError => handleValidationError(e)
}
}

def scatterData = Action.async(parse.json) { implicit request =>
val columns = Json.fromJsonList[ParallelEntity]
columns match {
case JsSuccess(columns: List[ParallelEntity], _) => dBConnectionService.scatterPlotData(columns) map { result =>
Ok(Json.toJson(result))
}
case e: JsError => handleValidationError(e)
}
}

def getProfileData = Action.async(parse.json) { implicit request =>
val connection = Json.fromJsonProfileEntity
connection match {
case JsSuccess(connection: ProfileEntity, _) => {
dBConnectionService.getProfileData(connection) map { result =>
Ok(Json.toJson(result))
}
}
case e: JsError => handleValidationError(e)
}
}

def getTimelineData = Action.async(parse.json) { implicit request =>
val connection = Json.fromJsonProfileEntity
connection match {
case JsSuccess(connection: ProfileEntity, _) => {
dBConnectionService.getTimelineData(connection) map { result =>
Ok(Json.toJson(result))
}
}
case e: JsError => handleValidationError(e)
}
}

private def handleValidationError(e: JsError): Future[Result] = Future.successful(Status(400)(Json.obj("errors" -> JsError.toJson(e).toString())))
}

@Lveastcoast
Copy link

this is my code

@Lveastcoast
Copy link

import javax.inject.Inject
import play.api.libs.concurrent.Execution.Implicits.defaultContext
import play.api.libs.json._
import play.modules.reactivemongo.ReactiveMongoApi
import reactivemongo.api.{Cursor, ReadPreference}
import reactivemongo.bson.BSONObjectID
import reactivemongo.play.json.collection.JSONCollection
import scala.concurrent.Future
import play.modules.reactivemongo.json._

class JobResult @Inject()(val reactiveMongoApi: ReactiveMongoApi) {

/** Mongodb */

lazy val db = reactiveMongoApi.db
lazy val export_collection = db.collectionJSONCollection
lazy val readout_collection = db.collectionJSONCollection
lazy val warranty_collection = db.collectionJSONCollection
lazy val cluster_collection = db.collectionJSONCollection
lazy val defect_cluster_collection = db.collectionJSONCollection
lazy val defect_name = db.collectionJSONCollection
lazy val config_collection = db.collectionJSONCollection
lazy val clusterdata_collection = db.collectionJSONCollection

def saveExportData(obj: JsObject, obj_id: Option[String]): String = {
val id = BSONObjectID.generate
if (obj_id != None) {
export_collection.findAndUpdate(
Json.obj("_id" -> Json.obj("$oid" -> id)), obj).isCompleted
obj_id.get
} else {
export_collection.insert(obj).isCompleted
id.stringify
}
}
}

@Lveastcoast
Copy link

import javax.inject._
import com.bmw.smartInsight.entities._
import com.bmw.smartInsight.job.JobResult
import com.mongodb.spark.MongoSpark
import org.apache.spark.ml.clustering.KMeans
import org.apache.spark.sql.Row
import play.api.libs.json.{JsArray, JsObject, JsValue, Json}
import org.apache.spark.ml.feature.VectorAssembler
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types.DoubleType
import scala.concurrent.ExecutionContext.Implicits._
import scala.concurrent.Future
import com.bmw.smartInsight.controllers.ControllerImplicits._
import org.apache.spark.sql.functions.expr
import org.apache.spark.sql.{Column, DataFrame}
import com.bmw.smartInsight.services.BaseApp._
import spark.implicits._

class DBConnectionService @Inject()(jobResult: JobResult) {
}

@Lveastcoast
Copy link

it works fine in sbt run. but while i try to run in sbt dist and then project-SNAPSHOT/bin/bmw-smart-insight -Dconfig.file=:/dev/data2/bmw-smart-insight-2.0/target/universal/bmw-smart-insight-1.0-SNAPSHOT/conf/application.conf -Dplay.crypto.secret=="changeme" -Dhttp.address=127.0.0.1 -Dhttp.port=9001

@Lveastcoast
Copy link

i hope there is something wrong about reactiveMongoApi. database initialization is that the problem

@michalzubkowicz
Copy link

@Lveastcoast it's not a support forum, but bug report :). Your case it's not related to this issue.

@sanasalim
Copy link

If somebody is interested there is working for me version with Play 2.5.12:
libraryDependencies += "io.swagger" % "swagger-play2_2.11" % "1.5.3"

This saved my day !! Thanks a lot 👍

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests