使用RESTlet,XStream注释似乎没有任何效果

时间:2010-02-20 00:40:40

标签: java restlet xstream

在我的POJO中使用@XStreamOmitField似乎没有任何效果。带注释的字段仍然以xml或json表示形式公开。

@XStreamAlias("Pojo")
@Entity
public class Pojo {
    private String name;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long key;

    @XStreamOmitField
    private String hidden;

    public Pojo(String name, String hidden) {
        this.name = name;
        this.hidden = hidden;
    }
}

并在ServerResource

@Get
public Pojo test() {
    Pojo pj= new Pojo("hansi","hinter");
    return pj;
}

让我

<com.myComp.ORMTest.Pojo>
  <name>hansi</name>
  <hidden>hinter</hidden>
</com.myComp.ORMTest.Pojo>

为什么忽略注释的想法?

2 个答案:

答案 0 :(得分:15)

您必须告诉XStream显式处理注释:

XStream xstream = new XStream();
xstream.processAnnotations(MyClass.class);

或者,您应该添加此代码以告知XStream处理所有注释:

xstream.autodetectAnnotations(true);

答案 1 :(得分:2)

我想到了两件事:

1。)您是否告诉XStream解析注释?

2。)您的Web框架是否可以使用代理来访问pojos而那些不会委托注释? (发生在Apache Tapestry的朋友身上)