如何修复所有错误并成功 运行 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]
不太确定为什么会出现此错误。是否与之前的版本问题有关?
好吧,如果有人比我更有见识,我将不胜感激:
- 更改协议 URL 实际上是正确的做法吗?
- 如何解决版本不兼容的错误?
- 如何解决端口错误?
好的,所以在Gitter上和Lightbend的人讨论后,发现sample临时坏了,升级到2.6.0版本应该不是这样。
我将版本修改为2.5.26,一切正常。
已在此处解决此问题 https://github.com/akka/akka-distributed-workers-scala.g8/issues/17
我正在尝试运行 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]
不太确定为什么会出现此错误。是否与之前的版本问题有关?
好吧,如果有人比我更有见识,我将不胜感激:
- 更改协议 URL 实际上是正确的做法吗?
- 如何解决版本不兼容的错误?
- 如何解决端口错误?
好的,所以在Gitter上和Lightbend的人讨论后,发现sample临时坏了,升级到2.6.0版本应该不是这样。
我将版本修改为2.5.26,一切正常。
已在此处解决此问题 https://github.com/akka/akka-distributed-workers-scala.g8/issues/17