我应该更清楚一点。但昨晚几个小时后,我找到了答案。首先,您需要一个像这样(或类似)的主对象:
object Sandbox {
def main(args: Array[String]) {
val server = new Server(3000)
val context = new WebAppContext()
context.setServer(server)
context.setContextPath("/")
context.setWar("webapp")
server.setHandler(context)
try {
server.start()
server.join()
} catch {
case e: Exception =>
e.printStackTrace()
System.exit(-1)
}
}
}
那么你需要一个 servlet:
class Test extends ScalatraServlet with ScalateSupport {
get("/") {
<html>
<body>
Hello World
</body>
</html>
}
}
您的默认包中还需要一个 ScalatraBootstrap 类(必须命名为ScalatraBootstrap.scala:
class ScalatraBootstrap extends LifeCycle {
override def init(context: ServletContext) {
context.mount(new Test, "/test/*")
}
}
快完成了。您将需要一个 XML 文件。创建一个webapp/WEB-INF 文件夹并将此web.xml 文件放入其中。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<listener>
<listener-class>org.scalatra.servlet.ScalatraListener</listener-class>
</listener>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/img/*</url-pattern>
<url-pattern>/css/*</url-pattern>
<url-pattern>/js/*</url-pattern>
<url-pattern>/assets/*</url-pattern>
</servlet-mapping>
</web-app>
最后,您需要 JAR 文件。有一个很长的列表,但是有一个相当简单的方法来获取它们。我讨厌 Maven,但我喜欢依赖管理。所以在某处创建一个测试文件夹并在this repo 中下载pom.xml 文件。然后转到pom.xml所在的文件夹并运行mvn dependency:copy-dependencies。从dependencies 文件夹中获取 JAR,一切顺利。没有 Maven,没有 SBT,没有魔法。像往常一样在 IDE 中运行和调试。 :)