我需要拦截应用程序的 REST API 响应并对其执行某些操作。实现此目的的一种非常明显的方法是在方法级别定义注释和拦截器(以便它可以应用于 REST API 方法)。但是,我找不到提取/拦截 API 响应的响应代码的方法。我对 Java EE 世界非常陌生,所以这里可能遗漏了一些东西,但在互联网搜索上也没有找到任何东西。我们的应用程序基于带有 CXF 的标准 JavaEE。
我看过一些示例,其代码类似于以下内容,但不确定如何从中获取 API 响应。任何帮助将不胜感激。
@AroundInvoke
public Object around(InvocationContext context) throws Exception {......
最佳答案
假设您使用的是标准 JEE 解决方案,来自 doc
@AroundInvoke
public Object logInvocation(InvocationContext ctx) throws Exception {
String class = ctx.getMethod().getDeclaringClass().getName();
String method = ctx.getMethod().getName();
Logger.global.entering(class, method, ctx.getParameters());
try {
Object result = ctx.proceed();
Logger.global.exiting(class, method, result);
return result;
}
catch (Exception e) {
Logger.global.throwing(class, method, e);
throw e;
}
}
Object result = ctx.proceed();
就是您的结果。
关于Java拦截器处理REST API响应代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39786236/