简体   繁体   English

如何解决类型安全配置上的NoSuchMethodError?

[英]how to resolve NoSuchMethodError on typesafe config?

I'm getting this error when trying to run my project. 尝试运行我的项目时出现此错误。

Exception in thread "main" java.lang.NoSuchMethodError: com.typesafe.config.Config.getDuration(Ljava/lang/String;)Ljava/time/Duration; 线程“主”中的异常java.lang.NoSuchMethodError:com.typesafe.config.Config.getDuration(Ljava / lang / String;)Ljava / time / Duration;

tried to clear ivy2 cache with no success . 试图清除ivy2缓存没有成功。 this is how my build sbt looks like : 这是我的构建sbt的样子:

scalaVersion  := "2.11.7"
scalacOptions := Seq("-unchecked", "-feature", "-deprecation", "-encoding", "utf8")

resolvers ++= Seq(
  Resolver.sonatypeRepo("releases"),
  Resolver.sonatypeRepo("snapshots"),
  Resolver.bintrayRepo("websudos", "oss-releases"),
  "spray repo"                       at "http://repo.spray.io",
  "Typesafe repository snapshots"    at "http://repo.typesafe.com/typesafe/snapshots/",
  "Typesafe repository releases"     at "http://repo.typesafe.com/typesafe/releases/",
  "Sonatype repo"                    at "https://oss.sonatype.org/content/groups/scala-tools/",
  "Sonatype releases"                at "https://oss.sonatype.org/content/repositories/releases",
  "Sonatype snapshots"               at "https://oss.sonatype.org/content/repositories/snapshots",
  "Sonatype staging"                 at "http://oss.sonatype.org/content/repositories/staging",
  "Sonatype"                         at "https://oss.sonatype.org/content/groups/public/",
  "Java.net Maven2 Repository"       at "http://download.java.net/maven/2/",
  "Twitter Repository"               at "http://maven.twttr.com"
)

libraryDependencies ++= {
  val phantomV         = "1.29.5"
  val scalaTestV       = "3.0.0"
  val elastic4sV       = "2.4.0"
  val akkaStreamVersion = "2.4.2"
  val akkaVersion = "2.3.11"
  Seq(
    "com.websudos"            %%  "phantom-dsl"                       % phantomV,
    "com.websudos"            %%  "phantom-reactivestreams"           % phantomV,
    "com.websudos"            %%  "util-testing"                      % "0.13.0"    % "test, provided",
    "com.typesafe.akka"       %% "akka-actor"                         % akkaVersion,
    "com.typesafe.akka"       %% "akka-http-spray-json-experimental"  % akkaStreamVersion,
    "com.typesafe.akka"       %%  "akka-http-core"                    % akkaStreamVersion,
    "com.typesafe.akka"       %% "akka-http-experimental"             % akkaStreamVersion,
    "com.typesafe.akka"       %% "akka-http-testkit"                  % akkaStreamVersion,
    "org.scalatest"           %% "scalatest"                          % scalaTestV % "test",
    "com.typesafe.akka"       %% "akka-testkit"                       % akkaVersion % "test",
    "com.typesafe.play"       %%  "play-streams-experimental"         % "2.4.6",
    "com.sksamuel.elastic4s"  %% "elastic4s-core"                     % elastic4sV,
    "com.sksamuel.elastic4s"  %% "elastic4s-streams"                  % elastic4sV
  )
}
lazy val root = project.in(file(".")).configs(IntegrationTest)
Defaults.itSettings

initialCommands := """|import akka.actor._
                      |import akka.pattern._
                      |import akka.util._
                      |import scala.concurrent._
                      |import scala.concurrent.duration._""".stripMargin
fork in run := true

any idea how to solve it ? 知道如何解决吗?

UPDATE: java.class.path shows 更新:java.class.path显示

/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/tools.jar:/Applications/IntelliJ IDEA.app/Contents/lib/jps-builders.jar:/Applications/IntelliJ IDEA.app/Contents/lib/util.jar:/Applications/IntelliJ IDEA.app/Contents/lib/trove4j.jar:/Users/avi/Library/Application Support/IntelliJIdea2016.2/Scala/lib/scala-library.jar:/Users/avi/Library/Application Support/IntelliJIdea2016.2/Scala/lib/scala-nailgun-runner.jar:/Users/avi/Library/Application Support/IntelliJIdea2016.2/Scala/lib/compiler-settings.jar:/Users/avi/Library/Application Support/IntelliJIdea2016.2/Scala/lib/jps/nailgun.jar:/Users/avi/Library/Application Support/IntelliJIdea2016.2/Scala/lib/jps/sbt-interface.jar:/Users/avi/Library/Application Support/IntelliJIdea2016.2/Scala/lib/jps/incremental-compiler.jar:/Users/avi/Library/Application Support/IntelliJIdea2016.2/Scala/lib/jps/scala-jps-plugin.jar:/Users/avi/Library/Application Support/IntelliJIdea2016.2/Scala/lib/jps/dotty-interfaces.jar /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/tools.jar:/Applications/IntelliJ IDEA.app/Contents/lib/jps-builders.jar:/Applications/IntelliJ IDEA.app/目录/lib/util.jar:/Applications/IntelliJ IDEA.app/Contents/lib/trove4j.jar:/Users/avi/Library/Application Support / IntelliJIdea2016.2 / Scala / lib / scala-library.jar:/ Users / avi / Library / Application Support / IntelliJIdea2016.2 / Scala / lib / scala-nailgun-runner.jar:/ Users / avi / Library / Application Support / IntelliJIdea2016.2 / Scala / lib / compiler-settings.jar:/ Users / avi / Library / Application Support / IntelliJIdea2016.2 / Scala / lib / jps / nailgun.jar:/ Users / avi / Library / Application Support / IntelliJIdea2016.2 / Scala / lib / jps / sbt-interface.jar:/ Users / avi / Library / Application Support / IntelliJIdea2016.2 / Scala / lib / jps / incremental-compiler.jar:/ Users / avi / Library / Application Support / IntelliJIdea2016.2 / Scala / lib / jps / scala-jps-plugin。 jar:/用户/ avi /库/应用程序支持/IntelliJIdea2016.2/Scala/lib/jps/dotty-interfaces.jar

It sounds like a classpath problem. 听起来像是类路径问题。 You may be using a library that calls (uses) Typesafe Config, but the version of Typesafe Config in your path is less than 1.3.0. 您可能正在使用一个调用(使用)Typesafe Config的库,但是路径中Typesafe Config的版本小于1.3.0。 The method that is not found was introduced in Typesafe Config 1.3.0. Typesafe Config 1.3.0中引入了找不到的方法。 To see your runtime classpath, make sure these statements are the first ones that are executed (ie before your app crashes): 要查看您的运行时类路径,请确保首先执行以下语句(即在应用崩溃之前):

val cp = System.getProperty("java.class.path")
val sep = System.getProperty("path.separator")
cp.split(sep).foreach(println)

Once you see that you do not have Typesafe Config 1.3.0, add it as an explicit dependency. 一旦发现您没有Typesafe Config 1.3.0,请将其添加为显式依赖项。

将TypeSafe 1.3.1添加为依赖项可能会有所帮助,将其添加为依赖项Seq()的一部分:

"com.typesafe" % "config" % "1.3.1"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM