twitter / finatra

Fast, testable, Scala services built on TwitterServer and Finagle
https://twitter.github.io/finatra/
Apache License 2.0
2.27k stars 408 forks source link

Finatra 1.5.4 with finagle-stats 6.22.0 throws an exception #184

Closed gianluca-sabena closed 9 years ago

gianluca-sabena commented 9 years ago

If I add finagle-stats to Finatra 1.5.4 example app

name := "finatra_example"

version := "0.0.1-SNAPSHOT"

scalaVersion := "2.10.3"

libraryDependencies ++= Seq(
  "com.twitter" %% "finatra" % "1.5.4",
  "com.twitter" %% "finagle-stats" % "6.22.0"
)

resolvers +=
  "Twitter" at "http://maven.twttr.com"

Finatra throws this exception

[info] Running com.twitter.finatra_example.App
INF [20141205-10:00:22.830] finatra: finatra process 53299 started
INF [20141205-10:00:22.832] finatra: http server started on port: :7070
[error] (run-main) java.lang.AbstractMethodError: com.twitter.finagle.thrift.ThriftClientFramedCodec.newTraceInitializer()Lcom/twitter/finagle/Stackable;
java.lang.AbstractMethodError: com.twitter.finagle.thrift.ThriftClientFramedCodec.newTraceInitializer()Lcom/twitter/finagle/Stackable;
    at com.twitter.finagle.builder.ClientBuilder$$anonfun$codec$2.apply(ClientBuilder.scala:406)
    at com.twitter.finagle.builder.ClientBuilder$$anonfun$codec$2.apply(ClientBuilder.scala:378)
    at com.twitter.finagle.builder.ClientBuilder.buildFactory(ClientBuilder.scala:794)
    at com.twitter.finagle.builder.ClientBuilder.build(ClientBuilder.scala:827)
    at com.twitter.finagle.zipkin.thrift.RawZipkinTracer.<init>(RawZipkinTracer.scala:89)
    at com.twitter.finagle.zipkin.thrift.SamplingTracer.<init>(ZipkinTracer.scala:75)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at java.lang.Class.newInstance(Class.java:374)
    at com.twitter.finagle.util.LoadService$$anonfun$apply$9.apply(LoadService.scala:191)
    at com.twitter.finagle.util.LoadService$$anonfun$apply$9.apply(LoadService.scala:181)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at com.twitter.finagle.util.LoadService$.apply(LoadService.scala:181)
    at com.twitter.finagle.tracing.DefaultTracer$.<init>(Tracer.scala:130)
    at com.twitter.finagle.tracing.DefaultTracer$.<clinit>(Tracer.scala)
    at com.twitter.finagle.server.DefaultServer$.$lessinit$greater$default$12(DefaultServer.scala:53)
    at com.twitter.finatra.FinatraServer$HttpServer$2$.<init>(FinatraServer.scala:106)
    at com.twitter.finatra.FinatraServer.com$twitter$finatra$FinatraServer$$HttpServer$1$lzycompute(FinatraServer.scala:106)
    at com.twitter.finatra.FinatraServer.com$twitter$finatra$FinatraServer$$HttpServer$1(FinatraServer.scala:106)
    at com.twitter.finatra.FinatraServer.startHttpServer(FinatraServer.scala:110)
    at com.twitter.finatra.FinatraServer.start(FinatraServer.scala:136)
    at com.twitter.finatra.FinatraServer.main(FinatraServer.scala:54)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.twitter.app.App$$anonfun$main$3.apply(App.scala:148)
    at com.twitter.app.App$$anonfun$main$3.apply(App.scala:147)
    at scala.Option.foreach(Option.scala:236)
    at com.twitter.app.App$class.main(App.scala:147)
    at com.twitter.finatra.FinatraServer.main(FinatraServer.scala:31)
    at com.twitter.finatra_example.App.main(App.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)

Everything works with Finatra 1.5.4 and finagle-stats 6.20.0

gianluca-sabena commented 9 years ago

Everything works if you download and compile finatra (dev version)