Jetty没有发动部署战争

时间:2013-09-11 19:02:30

标签: java scala jetty sbt war

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

1 个答案:

答案 0 :(得分:3)

对于webapps和wars,没有main方法。

如果您希望在部署完成时启动某些内容,则需要创建,设置和配置自定义javax.servlet.ServletContextListener,其中contextInitialized(ServletContextEvente sce)的实现会执行您的Twitter风暴拓扑。

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

请参阅OneWebApp embedded example

在您的使用案例中,您将在server.start();之后和server.join();之前初始化您的“Twitter风暴拓扑”