未调用RestEASY拦截器

我创建了一个RestEASY拦截器,以允许我在Web服务调用完成后在HTTP响应上设置标头值。我的代码看起来像这样…

@Provider

@ServerInterceptor

@Precedence("HEADER_DECORATORS")

public class MyHeaderInterceptor implements

MessageBodyWriterInterceptor {

@Override

public void write(MessageBodyWriterContext context) throws IOException,

WebApplicationException {

....do stuff here....

}

}

但是,当我调用服务时,永远不会调用拦截器。我看到webservice调用成功完成,但是拦截器中的任何代码都没有执行过。除了注册拦截器,我还需要做些其他事情吗?是否必须在其他任何地方声明?是否需要包含任何特殊的web.xml参数?

回答:

您必须在web.xml的resteasy.providers上下文参数中列出拦截器。仅向Interceptor类添加注释是不够的。

<context-param>

<param-name>resteasy.providers</param-name>

<param-value>org.resteasy.test.ejb.exception.FooExceptionMapper</param-value>

</context-param>

以上是 未调用RestEASY拦截器 的全部内容, 来源链接: utcz.com/qa/402331.html

回到顶部