【问题标题】:Can't setup typesafe console无法设置类型安全控制台
【发布时间】:2013-12-21 07:04:57
【问题描述】:

我正在尝试为我的基于 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 一起使用吗?据我所知,typesafe 激活器有 2.2.1 .. 另外,我在 atmos 日志中看到一个奇怪的警告:

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

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

【问题讨论】:

    标签: scala akka typesafe typesafe-console


    【解决方案1】:

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

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

    现在 atmos 工作得很好。

    【讨论】:

    • 巨大的帮助!永远不会想到这一点
    • 谢谢 - 我们遇到了类似的问题!
    • 嗨,如果我的项目是 maven 并且我不使用 sbt,这是否意味着我在我的 pom 中添加了 protobuf 依赖项?
    猜你喜欢
    • 1970-01-01
    • 2013-07-30
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多