使用嵌入式Jetty为scalatra定义资源库

时间:2015-01-29 08:50:05

标签: jetty embedded-jetty scalatra

我有一个基于scalatra的app with embedded jetty。

我的最终输出结构是/lib /bin /etc,而webapp位于等。

启动webapp时,有一行设置resourceBase - 在这种情况下应该设置什么?

val context = new WebAppContext()
context setContextPath "/"
context.setResourceBase(???)

1 个答案:

答案 0 :(得分:0)

在Jetty中使用WebAppContext作为您选择的ContextHandler时,您受到WebApp的所有要求的限制。

即:

  • ${resourceBase}/WEB-INF/classes/是课程的主要来源
  • ${resourceBase}/WEB-INF/lib/*.jar是类和webapp配置的辅助来源
  • ${resourceBase}/WEB-INF/web.xml是webapp描述符(Servlet规范3.0 +中的可选项)
  • ${resourceBase}/javax.servlet.ServletContext中各种方法的查找点,例如:
    • String getRealPath(String path)
    • URL getResource(String path)
    • InputStream getResourceAsStream(String path)
    • Set<String> getResources(String path)
  • 请求的资源与您的任何servlet或过滤器都不匹配,然后由DefaultServlet处理,*.html可能会提供静态资源(例如*.css*.js,{ {1}})来自指定的${resourceBase}

这只是列举正确定义resourceBase的一些原因。

祝你好运,