我有一个安静的网络服务(使用弹簧球衣,弹簧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
提前谢谢你们。