如何从PreProcessInterceptor访问上下文init参数?

时间:2017-05-02 16:58:20

标签: java jboss jax-rs resteasy

我在RESTEasy PreProcessInterceptor中,需要访问我在WAR的web.xml中配置的参数(在RestEasy servlet的servlet定义中作为init-param - 如上所述{ {3}} - 或context-param)。

我如何实现这一目标?

或者,是否有其他地方我应该配置参数,我需要在运行时将其用于拦截器?

1 个答案:

答案 0 :(得分:0)

对我有用的是以下内容。在过去,我在WAR web.xml中定义了我的PreProcessorInterceptor,如下所示:

<context-param>
    <param-name>resteasy.providers</param-name>
    <param-value>my.package.MyPreProcessorInterceptor</param-value>        
</context-param>

我现在将其从web.xml移开并将其放在我的Application内,如下所示:

public class JaxRsApplication extends Application {

    private Set<Object> singletons = new HashSet<>();

    public JaxRsApplication(@Context ServletContext servletContext) {
        Assert.assertNotNull(servletContext);
        singletons.add( new MyPreProcessorInterceptor(servletContext) );        
    }

    @Override
    public Set<Object> getSingletons() {
        return singletons;
    }

}