Как развернуть API фреймворка Scala Play с помощью собственного упаковщика SBT

Я создал веб-API на основе Scala Play framework 2. Раньше я создавал файлы war с помощью подключаемого модуля SBT для развертывания в рабочей среде с помощью Tomcat. Теперь можно собрать нативный пакет из проекта Play с помощью плагина нативного упаковщика SBT. Я использовал его для создания пакета Debian из своего веб-приложения.

Однако я не понимаю, как это работает. Я мог бы сгенерировать и установить пакет Debian и запустить демон, но мой API, похоже, не слушает запрос.

В первом случае Tomcat размещает военный файл, содержащий приложение Play, и управляет HTTP-соединением. У меня такое ощущение, что в моем пакете Debian отсутствуют части, необходимые для правильной работы, как файл war в Tomcat.

Вопрос в том, как я могу использовать собственный плагин упаковщика для развертывания автономного HTTP API? Что отвечает за обработку HTTP-соединения? Чего не хватает в моем проекте?

заранее спасибо




Ответы (1)


Приложения Play запускаются с использованием собственного облегченного http-сервера.

Создание отдельной задачи проекта

sbt dist

или если вы используете активатор

activator dist

Это создает каталог target/universal/your-app.zip.

Если вы разархивируете содержимое, вы обнаружите автономную структуру приложения.

/bin
/lib
/conf
/share

под которым можно найти шеллскрипты запускающие сервер

bin/your-app
bin/your-app.bat (windows)

Похоже, дистрибутив в файле war был удален из игры. Аналогичный вопрос задан здесь: Развернуть play как военный файл в контейнере сервлетов, даже если он интенсивно использует JPA?

person Friggles    schedule 16.02.2015
comment
Спасибо за ответ. Можно ли также создать отдельное приложение, упакованное в пакет Debian? - person reevolt; 17.02.2015
comment
Собственный упаковщик создает только автономные дистрибутивы. Однако вам нужно немного настроить игру, если вы хотите ее развернуть. См. scala-sbt.org/sbt-native-packager/topics /play.html также убедитесь, что вы используете правильный порт и wpp действительно работает - person Muki; 17.02.2015