Lagom lagomServiceLocatorStart не работает - в соединении отказано

Я создал пример проекта Lagom под названием hello-lagom, и все работает нормально. Однако, когда я пытаюсь запустить проект helloworld-impl, сначала запустив локатор сервисов, а затем запустив проект следующим образом:

activator lagomServiceLocatorStart
activator helloworld-impl/run

Консоль показывает, что локатор сервисов работает:

[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

Запуск встроенной кассандры с лагом CassandraStart не помогает. Не только сервис cassandra, но и helloworld-impl не может зарегистрироваться в локаторе сервисов. Я попытался подключиться к порту по телнету, но он возвращает отказ в соединении.

Может ли это быть ошибкой, возникающей только при попытке запустить автономную службу, или я могу что-то упустить?


person Stanford Bangaba    schedule 12.05.2016    source источник
comment
Получил ту же ошибку, когда попробовал Logam.   -  person Hantsy    schedule 20.05.2016


Ответы (1)


Проблема в том, что ваша первая команда, activator lagomServiceLocatorStart, запускает встроенный локатор служб, но локатор служб также останавливается сразу после выполнения команды (поскольку ваш сеанс активатора завершился). Причина, по которой мы автоматически останавливаем встроенный локатор сервисов в конце сеанса активатора, заключается в том, чтобы избежать утечки ресурсов.

Здесь у вас есть три решения:

1) Объедините две задачи, чтобы они выполнялись в рамках одного сеанса активатора: activator lagomServiceLocatorStart helloworld-impl/run

2) Сначала входите в сессию активатора, а затем выполняете задачи (я определенно рекомендую это вместо 1, так как вы не платите штраф по времени за каждый запуск активатора):

$ activator
> lagomServiceLocatorStart
> helloworld-impl/run

3) Используйте задачу Lagom runAll вместо ручного запуска локатора сервисов и ваших сервисов, так как он позаботится об этом за вас (используйте это, если у вас нет веских причин поступать иначе):

$ activator
> runAll
person Mirco Dotta    schedule 22.05.2016