如何修复所有错误并成功 运行 Akka Distributed Workers 示例项目?

How to fix all the errors and successfully run the Akka Distributed Workers Sample Project?

我正在尝试运行 Akka Distributed Workers 项目按照这里的指南https://developer.lightbend.com/guides/akka-distributed-workers-scala/

在 运行 上,它失败并显示一系列错误消息。第一个引起我注意的是:

14:42:36.747 [ClusterSystem-akka.actor.default-dispatcher-4] ERROR akka.cluster.ClusterActorRefProvider - No root guardian at [akka.tcp://ClusterSystem@127.0.0.1:2554]
java.lang.IllegalArgumentException: Wrong protocol of [akka.tcp://ClusterSystem@127.0.0.1:2554/], expected [akka]

确实,当我看一下配置时 "akka.tcp://ClusterSystem@127.0.0.1:2554" 被使用了。

但是为什么样本格式不对?也许格式改变了?

反正我改成 "akka://ClusterSystem@127.0.0.1:2554" 然后又尝试 运行...

有关错误协议的错误似乎消失了,但现在我收到以下错误:

[error] (run-main-1) java.lang.IllegalStateException: Detected possible incompatible versions on the classpath. Please note that a given Akka version MUST be the same across all modules of Akka that you are using, e.g. if you use [2.6.0] all other modules that are released together MUST be of the same version. Make sure you're using a compatible set of libraries. Possibly conflicting versions [2.6.0, 2.5.23] in libraries [akka-persistence:2.6.0, akka-persistence-query:2.5.23, akka-coordination:2.6.0, akka-actor:2.6.0, akka-slf4j:2.6.0, akka-remote:2.6.0, akka-cluster:2.6.0, akka-protobuf-v3:2.6.0, akka-stream:2.6.0, akka-cluster-tools:2.6.0]

这也很奇怪,因为我没有修改任何依赖项...为什么示例项目附带不兼容的依赖项版本?

无论如何,我注意到 akka-persistence-query:2.5.23 是一个有问题的人。它是版本 2.5.23 而不是像其他人一样的 2.6.0。

但是没有明确添加akka-persistence-query的地方。那怎么修改版本呢?

最后一组错误与端口绑定有关:

java.lang.IllegalStateException: Failed to bind port 9042 on 127.0.0.1.
        at org.apache.cassandra.transport.Server.start(Server.java:160) ~[cassandra-bundle.jar:0.100-SNAPSHOT]
        at java.util.Collections$SingletonSet.forEach(Collections.java:4767) ~[na:1.8.0_161]

不太确定为什么会出现此错误。是否与之前的版本问题有关?

好吧,如果有人比我更有见识,我将不胜感激:

  1. 更改协议 URL 实际上是正确的做法吗?
  2. 如何解决版本不兼容的错误?
  3. 如何解决端口错误?

好的,所以在Gitter上和Lightbend的人讨论后,发现sample临时坏了,升级到2.6.0版本应该不是这样。

我将版本修改为2.5.26,一切正常。

已在此处解决此问题 https://github.com/akka/akka-distributed-workers-scala.g8/issues/17