如何在嵌入式Jetty中启动Lift?

时间:2011-12-25 06:28:07

标签: scala jetty lift embedded-jetty

我有一台服务器,它将作为其职责的一部分提供一些网络内容。它使用嵌入式Jetty,我想为它添加一些Lift的美感(模板,演员等)。

问题是所有电梯示例都使用Jetty作为容器。有没有办法在我的嵌入式Jetty中启动Lift?如果是的话,怎么样?

1 个答案:

答案 0 :(得分:5)

找到答案:RunWebApp.scala

import _root_.org.mortbay.jetty.Connector
import _root_.org.mortbay.jetty.Server
import _root_.org.mortbay.jetty.webapp.WebAppContext
import org.mortbay.jetty.nio._

object RunWebApp extends Application {
  val server = new Server
  val scc = new SelectChannelConnector
  scc.setPort(8080)
  server.setConnectors(Array(scc))

  val context = new WebAppContext()
  context.setServer(server)
  context.setContextPath("/")
  context.setWar("src/main/webapp")

  server.addHandler(context)

  try {
    println(">>> STARTING EMBEDDED JETTY SERVER, PRESS ANY KEY TO STOP")
    server.start()
    while (System.in.available() == 0) {
      Thread.sleep(5000)
    }
    server.stop()
    server.join()
  } catch {
    case exc : Exception => {
      exc.printStackTrace()
      System.exit(100)
    }
  }
}

我现在唯一的问题是使用Lift 2.4,Scala 2.9.1和Eclipse Jetty来构建它 - 目前我只能找到Lift 2.3,Scala 2.8.1和Mortbay Jetty的工件。