scala - 无法设置类型安全控制台

标签 scala akka typesafe typesafe-console

我正在尝试为基于 akka+spray 的服务器启用类型安全控制台,但它不起作用。我已经成功地将 sbt-atmos 插件添加到我的 sbt 构建中(推荐 here ),当我运行 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"
}

谁能帮我找出问题所在?顺便问一下,类型安全控制台可以与 akka 2.2.3 一起使用吗?据我所知,类型安全激活器有 2.2.1.. 另外,我在 atmos 日志中看到一个奇怪的警告:

WARN  [U] [ActorSystem(atmos)] [pool-1-thread-1] : Couldn't accept new trace receiver connection - already at max connections

我试图用谷歌搜索它,但找不到任何相关信息。什么意思?

最佳答案

我在 typesafe console google group 中找到了帮助,但我也会在这里发布它,因为遇到类似问题的人也可以在这里找到它。问题出在 google protobuf 插件中。 Atmos 内部使用 2.4.1 版本,因此向项目添加更新版本可能会破坏它。使其工作的一个简单方法是使用与 atmos 相同的 protobuf 版本。我把它改成了这样:

 val protobuf   = "com.google.protobuf" % "protobuf-java" % "2.4.1"

现在 atmos 工作正常。

关于scala - 无法设置类型安全控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20381390/

相关文章:

scala - sbt 多项目构建在项目之间具有测试依赖性?

java - 当我使用 akka 流在现有消费者组中创建新消费者时,如何寻求 kafka 主题的结束?

java - 类型安全配置 : Load configuration from src/test/resources

scala - 从字符串形式的日期中减去天数

scala - Scala 中列表列表的模式匹配

scala - 使用 Akka、SQS 和 Camel 的消费者投票率

java - Akka +Java : set actors name while using RoundRobinPool

scala - Akka Stream Kafka 与 Kafka Streams

docker - Docker错误和Lagom进行可视化

Scala:如何始终使某些实用程序可用于子包?