Может кто-нибудь объяснить, что происходит, когда играешь! приложение развернуто как файл войны? - PullRequest
4 голосов
/ 06 августа 2011

Play Framework не поддерживает спецификацию сервлета, тем не менее среди его вариантов развертывания есть возможность упаковать все приложение в файл war и развернуть его в любом контейнере сервлета.

Начиная с версии 1.1, play использует netty в качестве интегрированного веб-сервера.

Мне было интересно, что произойдет, когда приложение воспроизведения будет развернуто в файле войны.

Использует ли он все еще netty внутри контейнера сервлета и упаковывает его? Есть ли какие-либо заметные эксплуатационные расходы? Или он просто принимает контейнер сервлета?

Ответы [ 3 ]

6 голосов
/ 08 августа 2011

Как говорит Нильс, Play не использует Netty для развертывания на других платформах.

Если вы запускаете Play с помощью команд play run или play start, он использует Netty для управления запросами, а затем передает их в инфраструктуру Play.

Однако, если вы хотите выполнить развертывание на другом сервере приложений, это невозможно. Итак, Play оборачивает обработку HTTP вокруг ServletWrapper, который эффективно преобразует обычный способ работы Play и делает его доступным в стеке J2EE, соответствующем спецификации Servlet.

Конкретный код для этой оболочки может быть найден здесь . Когда вы создаете файл WAR, play эффективно помещает этот ServletWrapper в качестве открытого сервлета (так же, как Struts делает с ActionServlet), и он обрабатывает необходимую работу для направления запроса в нужное место.

0 голосов
/ 07 июня 2016

Как показывает эта страница ,

В Play 1.2 вы можете взять файл .war с помощью команды play war myapp -o myapp.war и развернуть его на одном из серверов Java EE, перечисленных на этой странице.

0 голосов
/ 07 августа 2011

Насколько я знаю, он не использует netty.У него есть специальный сервлет, который делегирует работу игровым классам.Только у стеклянных рыб есть родной play-контейнер.Это явно негативно влияет на производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...