我是一种新的与Java的Web开发。 我正在开发一个web服务,我选择了REST/Jersey。泽西岛/ ServletContext和启动资源加载
我想在启动服务时初始化一些东西,并在服务的整个生命周期中保持它们的 。
第一个问题:Servlet的构造函数是一个很好的地方吗?
基本上,我想要做的是加载位于我的WEB-INF目录中的config.ini文件。 正在关注this help,我知道我需要一个ServletContext来加载我的文件作为资源。
但是,我不清楚如何得到这个ServletContext的在新泽西 Servlet的,因为它是不是真的一个servlet实例,而是与一些注释的POJO。 我想尝试this tip,但属性“context”在构造函数中为null。我认为可能会在构造函数之后填充它。对 ?
那么正确的方法是如何做到这一点?
这是到目前为止我的代码:
/** Main REST servlet */
@Path("/")
public class Servlet {
// ----------------------------------------------------
// Constants
// ----------------------------------------------------
static private final String CONFIG_PATH = "/WEB-INF/config.ini";
// ----------------------------------------------------
// Attributes
// ----------------------------------------------------
/** Context */
@Context ServletContext context;
// ----------------------------------------------------
// Constructor
// ----------------------------------------------------
/** Init the servlet */
public Servlet() {
// Load config.ini from WEB-INF
Config.config = new Config(
this.context.getResourceAsStream(CONFIG_PATH));
// FAIL! this.context is null ...
}
// ----------------------------------------------------
// URI Handlers
// ----------------------------------------------------
/** Welcome page */
@GET
@Path("/")
@Produces(MediaType.TEXT_HTML)
public String welcome() {
return "<h1>Hi there.</h1>";
}
}
任何帮助将非常感激。 由于提前,
拉斐尔
嗨,谢谢你的帮助。 这似乎更清楚这种方式,这工作! – 2010-05-31 12:00:55
不知道你做了什么,因为这不起作用:泽西吃了它,并且在教程中编写的代码永远不会在Jersey ReST servlet下调用。 – 2012-12-28 20:28:28