作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们已经在 CXF 中实现了一个 REST API。我的目标是能够在 POJO 上定义自定义注释,并在它们被编码之前在 CXF 拦截器中处理它们。我相信除了在拦截器中检索实际对象之外,我拥有执行此操作所需的所有信息。我的代码如下所示:
@Path("/mypath")
public class MyResource {
@GET
public MyObject getObject() {
MyObject o = new MyObject();
...
return o;
}
}
public class MyObject {
private String x;
@MyAnnotation
public String getX() {
return x;
}
public String setX(x) {
this.x = x;
}
}
public class MyInterceptor extends AbstractPhaseInterceptor<Message> {
public VersionOutInterceptor() {
super(Phase.POST_LOGICAL);
}
public final void handleMessage(Message message) {
// 1. STUCK -- get object from the message
// 2. parse annotations and manipulate the object
// 3. put the object back on the message for serialization
}
}
最佳答案
我有类似的要求,这就是我可以做到的
对于 In Interceptor 我使用了 PRE_INVOKE 相位和输出拦截器 PRE_LOGICAL 阶段。
此代码仅显示日志记录,但如果用例需要,您可以更改对象。
下面的代码将获取您正在寻找的对象
@Override
public void handleMessage(Message message) throws Fault {
MessageContentsList objs = MessageContentsList.getContentsList(message);
if (objs != null && objs.size() == 1) {
Object responseObj = objs.get(0);
DomainPOJO do= (DomainPOJO)responseObj;
_logger.info(do.toString());
}
}
关于rest - CXF 休息 : How can I retrieve the POJO object from the message in an interceptor before it gets marshal'd?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11620622/
我是一名优秀的程序员,十分优秀!