将HttpservletRequest注入spring aop

时间:2015-04-02 09:09:20

标签: java spring aop jersey-2.0

我有一个安静的网络服务(使用弹簧球衣,弹簧4.1.4,球衣2.14),

@POST
@Path("myPath")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.TEXT_HTML })
@CustomAnnotation
public Response myMethod(@Context HttpServletRequest request){

}

我有一个春天的AOP建议

@Aspect
public class MyAdvice {

@Before(" @annotation(CustomAnnotation)")
public void checkSomething(JoinPoint jp) throws AppException {

    for (Object o : jp.getArgs()) {
        if(o instanceof HttpServletRequest){
            // do something
        }
    }
}

我的问题是,不是将HttpServletRequest作为方法参数传递,我可以以某种方式从我的AOP内部访问HttpServletRequest吗?

我试过

HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest(); 

在checkSomething方法中,它会抛出异常

org.glassfish.jersey.server.spring.scope.JaxrsRequestAttributes cannot be cast to org.springframework.web.context.request.ServletRequestAttributes

提前谢谢你们。

0 个答案:

没有答案