i eine API spray.io mit erstellen möchten, ich bin folgen jede Anweisung von https://danielasfregola.com/2015/02/23/how-to-build-a-rest-api-with-spray/
Fehler: java.lang.NoClassDefFoundError: akka/util/Timeout
danach, hier ist mein Code
package API.Configurations
import java.io.File
import com.typesafe.config.ConfigFactory
import akka.io.IO
import spray.can.Http
import akka.pattern.ask
import akka.util.Timeout
import scala.concurrent.duration._
import akka.actor.{ActorSystem, Props}
object MainServices
extends App
{
val configFile = new File("/home/ubuntu/conf/application.conf")
val getPortMYSQL = ConfigFactory.parseFile(configFile).getInt("port")
val getAddressMYSQL = ConfigFactory.parseFile(configFile).getString("address")
val getUsernameMYSQL = ConfigFactory.parseFile(configFile).getString("username")
val getPasswordMYSQL = ConfigFactory.parseFile(configFile).getString("password")
val getPortAPI = ConfigFactory.parseFile(configFile).getInt("port_api")
val getAddressAPI = ConfigFactory.parseFile(configFile).getString("address_api")
val getPortES = ConfigFactory.parseFile(configFile).getInt("port_es")
val getAddressES = ConfigFactory.parseFile(configFile).getString("address_es")
val getclusterNameES = ConfigFactory.parseFile(configFile).getString("clusterNameES")
implicit val system = ActorSystem("BRISK_API")
val service = system.actorOf(Props[ServicesControllers], "CONFIGURATION_BRISK_API")
import scala.concurrent.duration._
implicit val askTimeout = new Timeout(5.seconds)
// implicit val timeout = Timeout(5.seconds)
IO(Http) ? Http.Bind(service, interface = getAddressAPI, port = getPortAPI)
println(s"Detil Services MYSQL : Port = ${getPortMYSQL}, Address = ${getAddressMYSQL}, Username = ${getUsernameMYSQL}, Password = ${getPasswordMYSQL}")
println(s"Detil Services API : Port = ${getPortAPI}, Address = ${getAddressAPI}")
println(s"Detil Services ES : Port = ${getPortES}, Address = ${getAddressES}, ClusterName = ${getclusterNameES}")
}
wenn im Versuch Skript zu verwenden: sbt Lauf, im Fehler. die Compiler sagte:
[error] (run-main-0) java.lang.NoClassDefFoundError: akka/util/Timeout
java.lang.NoClassDefFoundError: akka/util/Timeout
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
Caused by: java.lang.ClassNotFoundException: akka.util.Timeout
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
[trace] Stack trace suppressed: run last compile:run for the full output.
java.lang.RuntimeException: Nonzero exit code: 1
at scala.sys.package$.error(package.scala:27)
[trace] Stack trace suppressed: run last compile:run for the full output.
[error] (compile:run) Nonzero exit code: 1
[error] Total time: 0 s, completed Oct 14, 2016 5:33:23 PM
immer bei akka/util/Timeout, eine Idee, wie das zu handhaben? danke.
EDIT 1: Ich wurde von diesen Link gefolgt, aber das Ergebnis ist immer noch das gleiche wie zuvor. Play 2.5 with Akka - could not find implicit value for parameter timeout: akka.util.Timeout
EDIT 2: meine build.sbt
name := "SBTSR2016"
version := "1.0"
mainClass in Compile := Some("API.Configurations.MainServices")
scalaVersion := "2.10.5"
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first
}
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" % "provided"
libraryDependencies += "io.spray" % "spray-can_2.10" % "1.3.2" % "provided"
libraryDependencies += "io.spray" % "spray-client_2.10" % "1.3.2" % "provided"
libraryDependencies += "io.spray" % "spray-testkit_2.10" % "1.3.2" % "provided"
//libraryDependencies += "io.spray" % "spray-routing_2.10" % "1.3.2" % "provided"
libraryDependencies += "io.spray" % "spray-http_2.10" % "1.3.2" % "provided"
libraryDependencies += "io.spray" % "spray-httpx_2.10" % "1.3.2" % "provided"
libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.12" % "provided"
libraryDependencies += "org.elasticsearch" % "elasticsearch" % "2.3.1" % "provided"
libraryDependencies += "com.sksamuel.elastic4s" % "elastic4s-streams_2.10" % "2.3.1" % "provided"
//libraryDependencies += "org.elasticsearch" % "elasticsearch" % "1.3.2"
libraryDependencies += "org.elasticsearch" % "elasticsearch-mapper-attachments" % "2.3.1" % "provided"
libraryDependencies += "com.typesafe" % "config" % "1.2.1" % "provided"
libraryDependencies += "io.spray" % "spray-routing-shapeless2_2.10" % "1.3.2"
//libraryDependencies += "com.typesafe.akka" % "akka-actor_2.10" % "2.3.4" % "provided"
libraryDependencies += "com.typesafe.akka" % "akka-actor_2.10" % "2.3.1" % "provided"
Darf ich fragen, welche IDE Sie verwenden? Sehen Sie sich das Glas an und ob die abhängigen Bibliotheken enthalten sind. Wenn nicht, sollten Sie schauen, wie Sie sagen, sbt, um sie hinein zu legen. Ich habe die Gläser mit intellij selbst erstellt und das Laufen mit sbt hat gut funktioniert. – sascha10000
ich benutze IDE intellij Idee. Wo soll ich das Glas suchen? @ sascha10000 – SunBright
aaw Entschuldigung, sah nicht richtig auf Ihren Build. Ich schaute auf den ersten Link und dort erklärt sie und jar exportiert werden. Deshalb dachte ich, du tust dasselbe. Soweit Sie intellij verwenden, schauen Sie, ob Sie die Timeout-Klasse in Ihren Abhängigkeiten finden können. Manchmal hatte ich Probleme mit importierten Bibliotheken, aber es gab keine klare Lösung. – sascha10000