Lagom lagomServiceLocatorStart 不工作 - 连接被拒绝

Lagom lagomServiceLocatorStart not working - Connection refused

我创建了一个名为 hello-lagom 的示例 Lagom 项目,一切似乎都运行良好。但是,当我尝试 运行 helloworld-impl 项目时,首先启动服务定位器,然后 运行 像这样 运行ning 项目:

activator lagomServiceLocatorStart
activator helloworld-impl/run

控制台显示服务定位器为运行ning:

[info] Service locator is running at http://localhost:8000
[info] Service gateway is running at http://localhost:9000
[success]

但是 Lagom 在启动 helloworld-impl 服务时抛出连接被拒绝的异常:

c.l.l.j.p.InitServiceLocatorHolder - Cassandra server name=[cas_native]
couldn't be registered to the service locator.
java.net.ConnectException: Connection refused: localhost/127.0.0.1:8000

使用 lagomCassandraStart 启动嵌入式 cassandra 没有帮助。不仅 cassandra 服务而且 helloworld-impl 都无法注册到服务定位器。我尝试远程登录该端口,但它 returns 连接被拒绝。

这可能是仅在尝试 运行 独立服务时发生的错误,还是我可能遗漏了什么?

问题是您的第一个命令 activator lagomServiceLocatorStart 启动了嵌入式服务定位器,但服务定位器也在命令执行后立即停止(因为您的激活器会话已结束)。我们在激活器会话结束时自动停止嵌入式服务定位器的原因是为了避免泄漏资源。

这里有三种解决方案:

1) 连接两个任务,以便它们将在同一个激活器会话中执行:activator lagomServiceLocatorStart helloworld-impl/run

2) 首先进入激活器会话,然后执行任务(我肯定会推荐这个超过 1,因为你不会为每次启动激活器支付时间惩罚):

$ activator
> lagomServiceLocatorStart
> helloworld-impl/run

3) 使用 Lagom runAll 任务而不是手动启动服务定位器和您的服务,因为它会为您处理这些事情(除非您有充分的理由不这样做,否则请使用它):

$ activator
> runAll