我们在 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 } }
如何从消息中获取对象,根据注释对其进行操作,然后将其放回消息中?