0

我有一个 Scala 应用程序,我通常像“sbt run”一样运行它。现在我将整个项目打包成一个 .WAR 文件(通过 sbt 包)。然后我将文件放入 webapps/ 目录并重新启动 Jetty。日志说应用程序已部署。如果我去 /tmp/jetty..../,我可以看到它。但是,Jetty 似乎没有运行我的应用程序的“主要”方法。此方法运行 Twitter Storm 拓扑,但我觉得一旦部署战争,什么都不会发生。这是我第一次与 Jetty 打交道。我很感激任何帮助。

4

1 回答 1

3

没有main用于 webapps 和战争的方法。

如果您希望在部署完成后启动某些东西,您将需要创建、设置和配置一个自定义javax.servlet.ServletContextListener,您的实现将在其中contextInitialized(ServletContextEvente sce)执行您的 twitter 风暴拓扑。

或者

您可以跳过在独立码头进程上部署战争的整个过程。为此,您将设置一个嵌入式 jetty 实例,您可以在其中执行您自己自定义的任何操作main,从启动 jetty 本身到添加您的 web 应用程序,再到执行您自己的自定义代码。

请参阅OneWebApp 嵌入式示例

在您的用例中,您将server.start();server.join();

于 2013-09-11T19:22:10.977 回答