如何使用 SBT 原生打包器部署 Scala Play 框架 API

How to deploy a Scala Play framework API using the SBT native packager

我基于 Scala Play 框架 2 创建了一个网站 API。过去我使用 SBT 插件生成 war 文件,以便使用 Tomcat 在生产中部署。现在可以使用 SBT 原生打包器插件从 Play 项目构建原生包。我用它从我的网络应用程序生成一个 debian 包。

但是,我不明白它是如何工作的。我可以生成并安装 debian 包并启动守护进程,但我的 API 似乎没有监听请求。

在第一种情况下,Tomcat 托管包含 Play 应用程序并管理 HTTP 连接的 war 文件。我感觉我的 debian 包中缺少某些部分,以便像 Tomcat.

下的 war 文件一样正常工作

问题是,如何使用本机 packager 插件部署独立的 HTTP API?什么负责处理 HTTP 连接?我的项目缺少什么?

提前致谢

使用自己的轻量级 http 服务器播放应用程序 运行。

构建独立项目问题

sbt dist

或者如果您使用激活器

activator dist

这将创建一个目录 target/universal/your-app.zip

如果解压内容,您会发现一个独立的应用程序结构

/bin
/lib
/conf
/share

您可以在其中找到启动服务器的 shellscripts

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

war 文件的分发似乎已从游戏中移除。类似的问题在这里问: Deploy play as a war file into a servlet container, even if it uses JPA heavily?