2017-04-23 11 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) 
    } 
} 

을, 그래서 버전을 라이브러리를 사용하거나 더 안정적인 웹 서비스 라이브러리로 전환 할 수 있습니다.

내가 같은 문제로 다른 사람을 참조하십시오

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'는 컴파일과 런타임 중에 class-path에 있던 클래스 사이에 불일치가 있음을 의미합니다. –

답변

1

알렉세이 그의 주석에서 언급 한 바와 같이,이 종속성 불일치 문제입니다. sbt-dependency-graph는 모든 라이브러리가 동일한 버전에 의존하는지 확인하는 유용한 도구입니다.

+0

Finch가 너무 어려워서이 문제로 인해 Scalatra로 다시 전환했습니다. 어쩌면 언젠가는 다시 시도해 볼 수도 있지만 유망한 것으로 보이지만 도구와 함께 싸우는 것을 좋아하지는 않습니다. 그러나 귀하의 회신에 감사드립니다. –