Я хотел бы разобраться в различиях между запуском игры и запуском игры в контексте проблемы ниже.В чем разница между прогонкой и запуском игры?
Мой конкретный случай использования является довольно сложным, но я упростить это так:
- При запуске (как часть 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
Спасибо @gourlaysama, это полезно, и я хотел бы углубиться в магию, которая происходит внутри sbt. Вы упомянули загрузчика классов, возможно, именно здесь проблема. Вы знаете, где я могу найти более подробную информацию об этом? Как я уже упоминал, журналы Tomcat, похоже, не предлагают каких-либо полезных деталей, но мы не можем исключать, что это как-то терпит неудачу. –
Я не знаю, зарегистрировано ли это где угодно (вне самого источника) ... Я добавил ссылки на то, где происходит волшебство, см. Редактирование. – gourlaysama