我试图使用编写器拦截器拦截泽西资源方法。但这对我不起作用。
自定义注释
@NameBinding
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface TransactionMonitored {
String name() default "";
}
拦截器类
@TransactionMonitored
@Provider
public class TestInterceptor implements WriterInterceptor {
@Override
public void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException {
context.proceed();
}
}
资源方法
@ApiOperation(value = "Get Air Avail Message Response", notes = "Returns Air Avail Response for Input XML Request", response = AirAvailResponseType.class)
@Produces({MediaType.APPLICATION_XML,CommonConstants.Fastinfoset})
@Consumes({MediaType.APPLICATION_XML,CommonConstants.Fastinfoset})
@POST
@TransactionMonitored
public Response execute(AirAvailRequestType airAvailRequestType, @Context HttpContext HttpContext) {
Exchange<AirAvailRequestType, AirAvailResponseType> padExchange = new Exchange<>(airAvailRequestType);
ExecutionContext context = null;
try {
首先我使用Spring AOP方法拦截器拦截上述资源方法,并确定我无法拦截在泽西注册的资源方法。所以我试过这个球衣拦截器。任何人都可以检查,让我知道我是否遗漏了任何东西。