2017-04-23 79 views
1

我試圖運行我的應用程序,我得到這個錯誤:AbstractMethodError在運行雀/欺騙應用

java.lang.AbstractMethodError: com.twitter.finagle.stats.MetricsStatsReceiver 

我的代碼是:

object Main extends TwitterServer { 

    implicit val objectMapper: ObjectMapper = ObjectProvider.objectMapper 

    val appConf = ConfigFactory.load() 

    def main(): Unit = { 
    statsReceiver.counter("posts") 
    statsReceiver.counter("login") 
    // configuration 
    val port = appConf.getInt("8090") 
    val db = new CommDb() 
    val service = Api.makeService(db) 
val server = Http.serve(":8080", service) //creates service 

    def close(): Future[Unit] = { 
    Await.ready(server.close()) 
    } 
    Await.ready(server) 
    } 
} 

這可能是一個錯誤,那麼是什麼版本我應該使用該庫,否則我可能只需切換到更穩定的Web服務庫。

我看到別人有同樣的問題:

https://gist.github.com/edwelker/33e60108d62613434680ec13aa265611

更新

 "com.github.finagle" %% "finch-core" % "0.14.0", 
     "com.github.finagle" %% "finch-circe" % "0.14.0", 
     "com.tokbox" % "opentok-server-sdk" % "3.0.0-beta.2", 
     "com.google.firebase" % "firebase-server-sdk" % "3.0.1", 
    "org.scalatest" %% "scalatest" % "2.2.5" % "it,test", 
"ch.qos.logback" % "logback-classic" % "1.1.7", 
     "com.github.finagle" %% "finch-jackson" % "0.14.0", 
     "com.github.finagle" %% "finch-test" % "0.14.0" % "it,test", 
     "com.softwaremill.macwire" %% "macros" % "2.2.3" % "provided", 
     "com.softwaremill.macwire" %% "util" % "2.2.3", 
     "com.softwaremill.macwire" %% "proxy" % "2.2.3", 
     "com.twitter" %% "finagle-stats" % "6.35.0", 
     "com.twitter" %% "twitter-server" % "1.20.0", 
     "com.twitter" %% "util-eval" % "6.34.0", 
     "com.typesafe" % "config" % "1.3.0", 
     "org.slf4j" % "slf4j-api" % "1.7.21", 
     "org.slf4j" % "jul-to-slf4j" % "1.7.21", 
     "org.slf4j" % "jcl-over-slf4j" % "1.7.21", 
     "org.slf4j" % "log4j-over-slf4j" % "1.7.21", 
     "org.scalactic" %% "scalactic" % "2.2.5" % "it,test", 
     "org.scalacheck" %% "scalacheck" % "1.13.1" % "it,test", 
     "ru.arkoit" %% "finchrich-controller" % "0.1.1" 
+0

那麼,您使用的是哪個版本?其他依賴項是什麼?一般來說,'AbstractMethodError'意味着在編譯期間和運行期間在類路徑上的類之間存在不匹配。 –

回答

1

正如阿列克謝在他的評論中提到的,這是一個依賴不匹配的問題。 sbt-dependency-graph是一個有用的工具,可以確保你的所有庫都依賴於相同的版本。

+0

由於這個問題,我找到Finch太難處理了,所以我又回到了Scalatra。也許有一天我會再試一次,因爲它似乎很有前途,但我不喜歡與這些工具作鬥爭。但是,謝謝你的迴應。 –