swagger-api / swagger-async-httpclient

Apache License 2.0
10 stars 25 forks source link

Client isn't compatible with Play 2.4 #2

Open akkie opened 8 years ago

akkie commented 8 years ago

Play 2.4 pulls in newer versions of async-http-client and Netty which aren't compatible with this version of swagger-async-httpclient. A workaround is to override the dependencies in the build .sbt of the Play project.

dependencyOverrides ++= Set(
  "io.netty" % "netty" % "3.9.2.Final",
  "com.ning" % "async-http-client" % "1.8.16"
)

This is the error I get when I start my Play app:

java.lang.NoSuchMethodError: com.ning.http.client.AsyncHttpClientConfig$Builder.setAllowPoolingConnection(Z)Lcom/ning/http/client/AsyncHttpClientConfig$Builder;
     com.wordnik.swagger.client.RestClient$InternalDefaults$BasicDefaults$.builder(RestClient.scala:207)
     com.wordnik.swagger.client.RestClient.<init>(RestClient.scala:268)
     modules.BaseModule.provideTransportClient(BaseModule.scala:95)
     modules.BaseModule$$FastClassByGuice$$aeb92184.invoke(<generated>)
     com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:272)
     com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:172)
     com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
     com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:53)
     com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
     com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
     com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
     com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
     com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
     com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
     com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
     com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
     com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
     com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
     com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:104)
     com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:104)
     com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:167)
     com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
     com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:53)
     com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
     com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
     com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
     com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
     com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
     com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
     com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
     com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
     com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
     com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
     com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
     com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
     com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
     com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
     com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
     com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
     com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
     com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
     com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
     com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
     com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
     com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
     com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
     com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
     com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
     com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
     com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
     play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:321)
     play.api.inject.RoutesProvider$$anonfun$2.apply(BuiltinModule.scala:67)
     play.api.inject.RoutesProvider$$anonfun$2.apply(BuiltinModule.scala:67)
     scala.Option.fold(Option.scala:158)
     play.api.inject.RoutesProvider.get$lzycompute(BuiltinModule.scala:67)
     play.api.inject.RoutesProvider.get(BuiltinModule.scala:63)
     play.api.inject.RoutesProvider.get(BuiltinModule.scala:62)
     com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
     com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72)
     com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
     com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62)
     com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
     com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
     com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
     com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
     play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:321)
     play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:316)
     play.api.Application$class.routes(Application.scala:111)
     play.api.DefaultApplication.routes(Application.scala:240)
     play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:90)
     play.api.Play$$anonfun$start$1.apply(Play.scala:87)
     play.api.Play$$anonfun$start$1.apply(Play.scala:87)
     play.utils.Threads$.withContextClassLoader(Threads.scala:21)
     play.api.Play$.start(Play.scala:87)
     play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:156)
     play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:121)
     scala.Option.map(Option.scala:146)
     play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:121)
     play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:119)
     scala.util.Success.flatMap(Try.scala:231)
     play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:119)
     play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:111)
     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:1689)
     java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)