【问题标题】:xsbt-web-plugin Running the web servelet container outside of sbt?xsbt-web-plugin 在 sbt 之外运行 web servlet 容器?
【发布时间】:2014-12-11 00:30:29
【问题描述】:

我正在使用 xsbt-web-plugin 来托管我的 serverlet。它工作正常,使用container:start

我现在需要它在后台运行,就像一个守护进程,即使我挂断了,理想情况下,即使机器重新启动。我宁愿不必调用 sbt。

我知道插件可以打包 WAR 文件,但我没有运行 tomcat 或类似的东西。我只想做container:start 所做的事情,但以更健壮(阅读:非交互式)的方式。

(我的目标是开发一个演示:我不希望我的 ssh 会话在人们使用演示时放弃 sbt 或类似的东西。但是我们还没有准备好投入生产,也没有serverlet 基础架构。)

【问题讨论】:

    标签: scala servlets sbt xsbt-web-plugin


    【解决方案1】:

    xsbt-web-plugin 并不打算充当生产服务器(具有自动重启、故障恢复、启动时运行等功能),但是我理解以这种方式使用它的小规模实用程序开发目的。

    你有几个选择:

    第一种方法

    在屏幕会话中运行 sbt,您可以随意(断开)连接而不会中断 sbt。

    第二种方法

    重写在 sbt 的退出钩子上触发的 shutdown 函数,以便容器在 sbt 停止后继续运行。

    对于这种方法,将以下设置添加到您的 sbt 配置中:

    build.sbt:

    onLoad in Global := { state => state }
    

    请注意,这将完全覆盖 onLoad 设置,因此在(不太可能)您将其配置为执行其他重要操作的情况下,它们不会发生。

    现在您可以通过在 sbt 中运行 container:start 然后退出 sbt 来启动您的容器,或者通过在命令行中运行 sbt container:start 来启动您的容器,这将在 fork 容器 JVM 后返回。给它几秒钟,然后你应该可以请求到 localhost:8080

    【讨论】:

      猜你喜欢
      • 2014-06-13
      • 2018-06-29
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      • 2017-03-17
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      相关资源
      最近更新 更多