Я хотел бы понять разницу между запуском запуска воспроизведения и запуском воспроизведения в контексте проблемы ниже.
Мой конкретный вариант использования довольно сложен, но я упрощу его следующим образом:
- При запуске (как часть Global.scala) мое приложение Play делает прямой вызов метода к точке входа Java-приложения X.
- В рамках своей инициализации X запускает встроенный экземпляр Tomcat.
- В конце инициализации X проверяет, что Tomcat работает и отвечает на запросы.
Теперь, когда я делаю play start
в этом приложении, Tomcat запущен и работает, X счастлив, и жизнь продолжается.
Однако, когда я делаю play run
, Tomcat не может инициализироваться, и X сидит там, ожидая ответа, в конечном итоге истечет время ожидания.
Основная причина, по которой мне нужно использовать play run
, заключается в разработке, поскольку я хотел бы подключить отладчик Eclipse для воспроизведения, запустив play debug run
.
Я понимаю, что это чрезмерное упрощение, но то, что я надеюсь получить от вас, приводит к различиям между Play run и Play start, которые могут повлиять на поведение моего приложения, что приведет к этому сбою.
Теперь я попытался увеличить количество потоков в пуле потоков Play по умолчанию, следуя http://www.playframework.com/documentation/2.1.x/ThreadPools, но не повезло.
Выходные данные воспроизведения и журналы не дают мне никакой полезной информации по этому вопросу.
Я использую Play 2.1.1