使用jersey ServletContainer时从web.xml获取配置数据

我正在使用泽西在Tomcat中创建一个webapp。 我还没有创建一个Servlet,我只使用了jersey ServletContainer和一些Resource类。

我的web.xml:

   Jersey REST Service  com.sun.jersey.spi.container.servlet.ServletContainer   com.sun.jersey.config.property.packages com.mycompany.myproduct.rest  1   Jersey REST Service /*   

我的webapp需要读取一些配置值。 我的印象是这样做的好方法是使用context-Params,如下所示:

  ...  This is a context parameter example ContextParam ContextParam value   

这是最好的方法吗? 如何从我的资源类中访问这些上下文参数?

这是一个示例资源类:

 @Path("/api/ping") public class PingResource { @GET @Produces(MediaType.TEXT_PLAIN) public String helloWorld() { return "pong"; } } 

您可以注入ServletContext并从那里查找参数。 就像是:

 public class PingResource { @Context ServletContext context; public String myServiceMethod() { context.getInitParam("ContextParam"); } } 

下面是为我工作的快照:)

//添加导入

 import javax.servlet.ServletContext; import javax.ws.rs.core.Context; 

//在你的类中添加属性

 @Context ServletContext context; 

//在方法中使用上下文参数

 String companyName = this.context.getInitParameter("companyName"); 

//将上下文添加到web.xml

  Context Parameter Test companyName Test Organization, Incorporated