Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用writerInterceptor拦截jersey资源方法_Java_Spring_Rest_Jersey_Jax Rs - Fatal编程技术网

Java 无法使用writerInterceptor拦截jersey资源方法

Java 无法使用writerInterceptor拦截jersey资源方法,java,spring,rest,jersey,jax-rs,Java,Spring,Rest,Jersey,Jax Rs,我正在尝试使用writer拦截器拦截jersey资源方法。但这对我不起作用 自定义注释 @NameBinding @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface TransactionMonitored { String name() default ""; } 拦截器类 @TransactionMonitored @Provide

我正在尝试使用writer拦截器拦截jersey资源方法。但这对我不起作用

自定义注释

@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 {
@ApiOperation(value=“Get Air Avail Message Response”,notes=“返回输入XML请求的Air Avail响应”,Response=AirAvailResponseType.class)
@产生({MediaType.APPLICATION_XML,CommonConstants.Fastinfoset})
@使用({MediaType.APPLICATION_XML,CommonConstants.Fastinfoset})
@职位
@交易监控
公共响应执行(AirAvailRequestType AirAvailRequestType,@Context HttpContext HttpContext){
交换padExchange=新交换(airAvailRequestType);
ExecutionContext上下文=null;
试一试{

首先,我已使用Spring AOP method interceptor拦截上述资源方法,并确定我无法拦截在jersey注册的资源方法。因此我尝试了此jersey interceptor。请任何人检查并告知我是否遗漏了任何内容。

您在interce中到底想做什么ptor?WriterInterceptor不是AOP风格的拦截器。我正在尝试使用自定义注释实现事务监视。使用spring方法拦截器,我们可以检查方法调用的响应。继续()但我无法将spring方法拦截器实现到这些jersey资源方法中,因为它抛出了“404错误”。从文档中我了解到过滤器和拦截器用于修改标题和方法内容,但我只是检查是否使用writer拦截器获得方法响应,以便我可以使用响应进行监控。是否可能?您可以使用Jersey的基础IoC框架HK2实现AOP。请参阅,就Spring而言,您可能没有正确实现它。我可以使用Spring AOP与Jersey集成。请参阅,查看是否有可能实现答复。我没有使用aspectj。我将尝试使用您提供并让您知道的链接。