2011-07-19 43 views
4

我试图在基于Scalatra的-sbt.g8如下:Scalate的ResourceNotFoundException在Scalatra的

class FooWeb extends ScalatraServlet with ScalateSupport { 
    beforeAll { contentType = "text/html" } 
    get("/") { 
    templateEngine.layout("/WEB-INF/scalate/templates/hello-scalate.jade") 
    } 
} 

,但我发现以下异常(即使该文件存在) - 任何线索? _baseResource==null

Could not load resource: [/WEB-INF/scalate/templates/hello-scalate.jade]; are you sure it's within [null]? 

org.fusesource.scalate.util.ResourceNotFoundException: Could not load resource: [/WEB-INF/scalate/templates/hello-scalate.jade]; are you sure it's within [null]? 

FWIW,最里面的异常是从org.mortbay.jetty.handler.ContextHandler.getResource线1142的到来。

回答

5

从scalatra邮件列表中得到答案。问题是,我开始与Jetty服务器:

import org.mortbay.jetty.Server 
import org.mortbay.jetty.servlet.{Context,ServletHolder} 
val server = new Server(8080) 
val root = new Context(server, "/", Context.SESSIONS) 
root.addServlet(new ServletHolder(new FooWeb()), "/*") 
server.start() 

我需要start()之前插入这样的:

root.setResourceBase("src/main/webapp")