CXF に REST API を実装しました。私の目標は、POJO でカスタム アノテーションを定義し、それらがマーシャリングされる前に CXF インターセプターで処理できるようにすることです。インターセプターで実際のオブジェクトを取得することを除いて、これを行うために必要なすべての情報を持っていると思います。私のコードは次のようになります。
リソース クラス
@Path("/mypath") public class MyResource { @GET public MyObject getObject() { MyObject o = new MyObject(); ... return o; } }
MyObject
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 } }
メッセージからオブジェクトを取得し、注釈に基づいて操作し、メッセージに戻すにはどうすればよいですか?