Scala Can';设置类型安全控制台
我正在尝试为基于akka+spray的服务器启用类型安全控制台,但它不起作用。我已经成功地将sbt atmos插件添加到我的sbt构建中(正如推荐的那样),当我运行Scala Can';设置类型安全控制台,scala,akka,typesafe,typesafe-console,Scala,Akka,Typesafe,Typesafe Console,我正在尝试为基于akka+spray的服务器启用类型安全控制台,但它不起作用。我已经成功地将sbt atmos插件添加到我的sbt构建中(正如推荐的那样),当我运行atmos:run时,它会在没有警告的情况下启动,我可以在localhost:9000上看到控制台web界面,但是,不幸的是,当我向服务器发送一些请求时,没有任何更改。控制台显示0个节点。我的应用程序是一个http服务器,它使用akka 2.2.3、sbt 0.13.0和spray 1.2.0。在我的Build.scala中,我有:
atmos:run
时,它会在没有警告的情况下启动,我可以在localhost:9000上看到控制台web界面,但是,不幸的是,当我向服务器发送一些请求时,没有任何更改。控制台显示0个节点。我的应用程序是一个http服务器,它使用akka 2.2.3、sbt 0.13.0和spray 1.2.0。在我的Build.scala中,我有:
lazy val SomeProject = Project(
id = "SomeProject",
base = file("."),
fork := true,
libraryDependencies ++= Dependencies.someProject,
resolvers ++= Dependencies.someProjectResolvers,
distJvmOptions in Dist := "-Xms256M -Xmx1024M",
outputDirectory in Dist := file("some-proj-dist"),
javaOptions := Seq("-XX:+CMSClassUnloadingEnabled", "-XX:+UseConcMarkSweepGC", "-XX:MaxPermSize=512M",
"-XX:PermSize=64M", "-Xmx2048M", "-XX:ReservedCodeCacheSize=256M")//,
) ++ PB.protobufSettings ++ Revolver.settings
).configs(Atmos).settings(atmosSettings: _*)
依赖项对象如下所示:
object Dependency {
// Versions
object V {
val Akka = "2.2.3"
val ScalaTest = "2.0"
}
val akkaKernel = "com.typesafe.akka" %% "akka-kernel" % V.Akka
val akkaSlf4j = "com.typesafe.akka" %% "akka-slf4j" % V.Akka
val logback = "ch.qos.logback" % "logback-classic" % "1.0.0"
val akkaActor = "com.typesafe.akka" %% "akka-actor" % V.Akka
val akkaTest = "com.typesafe.akka" %% "akka-testkit" % V.Akka % "test"
val scalaTest = "org.scalatest" %% "scalatest" % V.ScalaTest % "test"
val sprayRouting = "io.spray" % "spray-routing" % "1.2.0"
val sprayCan = "io.spray" % "spray-can" % "1.2.0"
val sprayJson = "io.spray" %% "spray-json" % "1.2.5"
val protobuf = "com.google.protobuf" % "protobuf-java" % "2.5.0"
val scalaCheck = "org.scalacheck" %% "scalacheck" % "1.11.0" % "test"
}
val protobuf = "com.google.protobuf" % "protobuf-java" % "2.4.1"
谁能帮我找出哪里出了问题吗?顺便问一下,typesafe控制台可以与akka 2.2.3一起工作吗?据我所知,typesafe activator有2.2.1。。
另外,我在atmos日志中看到一个奇怪的警告:
WARN [U] [ActorSystem(atmos)] [pool-1-thread-1] : Couldn't accept new trace receiver connection - already at max connections
我试着用谷歌搜索它,但找不到任何关于它的信息。这意味着什么?我在typesafe控制台google group中找到了帮助,但我也将在这里发布它,因为面临类似问题的人也可以在这里找到它。问题出在google protobuf插件中。Atmos在内部使用版本2.4.1,因此向项目中添加新版本可能会破坏它。一个简单的方法是使用与atmos相同的protobuf版本。我把它改成这样:
object Dependency {
// Versions
object V {
val Akka = "2.2.3"
val ScalaTest = "2.0"
}
val akkaKernel = "com.typesafe.akka" %% "akka-kernel" % V.Akka
val akkaSlf4j = "com.typesafe.akka" %% "akka-slf4j" % V.Akka
val logback = "ch.qos.logback" % "logback-classic" % "1.0.0"
val akkaActor = "com.typesafe.akka" %% "akka-actor" % V.Akka
val akkaTest = "com.typesafe.akka" %% "akka-testkit" % V.Akka % "test"
val scalaTest = "org.scalatest" %% "scalatest" % V.ScalaTest % "test"
val sprayRouting = "io.spray" % "spray-routing" % "1.2.0"
val sprayCan = "io.spray" % "spray-can" % "1.2.0"
val sprayJson = "io.spray" %% "spray-json" % "1.2.5"
val protobuf = "com.google.protobuf" % "protobuf-java" % "2.5.0"
val scalaCheck = "org.scalacheck" %% "scalacheck" % "1.11.0" % "test"
}
val protobuf = "com.google.protobuf" % "protobuf-java" % "2.4.1"
现在atmos工作正常。帮了大忙!我永远也想不到这一点谢谢-我们也有类似的问题!嗨,如果我的项目是maven,我不使用sbt,这是否意味着我在pom中添加了protobuf依赖项?