2017-01-12 5 views
1

Я получаю ошибку, точно так же, как и название. Я уже занимаюсь исследованиями и нашел нечто похожее, но оно не работает на меня.Ошибка: java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor() Ljava/util/concurrent/Executor;

Я использую Scala в качестве языка программирования для создания API, и Elasticsearch в качестве базы данных.

вот мой код build.sbt

name := "LearningByDoing" 

version := "1.0" 

scalaVersion := "2.10.5" 

resolvers += "spray repo" at "http://repo.spray.io" 
resolvers += "spray nightlies repo" at "http://nightlies.spray.io" 

libraryDependencies += "io.spray" % "spray-json_2.10" % "1.3.2" 
libraryDependencies += "io.spray" % "spray-can_2.10" % "1.3.2" 
libraryDependencies += "io.spray" % "spray-client_2.10" % "1.3.2" 
libraryDependencies += "io.spray" % "spray-testkit_2.10" % "1.3.2" 
libraryDependencies += "io.spray" % "spray-routing_2.10" % "1.3.2" 
libraryDependencies += "io.spray" % "spray-http_2.10" % "1.3.2" 
libraryDependencies += "io.spray" % "spray-httpx_2.10" % "1.3.2" 
libraryDependencies += "io.spray" % "spray-util_2.10" % "1.3.2" 
libraryDependencies += "io.spray" % "spray-can_2.10" % "1.3.2" 

libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.12" 
libraryDependencies += "org.elasticsearch" % "elasticsearch" % "2.3.1" 
libraryDependencies += "com.sksamuel.elastic4s" % "elastic4s-streams_2.10" % "2.3.1" 
libraryDependencies += "org.elasticsearch" % "elasticsearch-mapper-attachments" % "2.3.1" 
libraryDependencies += "com.typesafe" % "config" % "1.2.1" 
libraryDependencies += "com.typesafe.akka" % "akka-actor_2.10" % "2.3.1" 

Вот мой код plugins.sbt

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0") 
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.0-M4") 
addSbtPlugin("com.typesafe.sbt" % "sbt-multi-jvm" % "0.3.9") 
addSbtPlugin("org.scalastyle" %% "scalastyle-sbt-plugin" % "0.8.0") 

на терминале, я был написан SBT чистый тест компиляции пакета обновления и все работает нормально. но когда я попадаю в API, всегда возникает ошибка.

ответ

0

Похоже, что у вас есть неправильная версия guava, так же, как вы упомянули firs link, может быть с плагином sbt this, вы можете увидеть дерево зависимостей и выяснить, какие-то беспорядочные зависимости.

0

Проблема заключается в том, что клиент TCP для Elasticsearch с 5.0 использует Netty 4.1, который несовместим с Spray, который использует Netty 4. Существует не обходное решение, кроме ожидания Spray для обновления или перехода на HTTP-клиент elasticsearch.