Jersey / JAXB / XML / JSON:向从POJO创建的文档添加元素

时间:2011-03-28 08:37:37

标签: xml json jaxb jersey

我是Jersey,JAXB和JSON的新手,而且是XML的绿色版本。我正在玩一个简单的Web服务(它努力成为RESTful)。

鉴于以下POJO:

@XmlRootElement
public class POJO {
  .
  .
  @XmlElement
  public String getProp1 {
    return prop1;
  }

  @XmlElement
  public String getProp2 {
    return prop2;
  }
}

和以下资源类:

@Path("/resource)
public class Resource {

  @Path("/pojo")
  @GET
  @Produces({"application/xml", "application/json"})
  public POJO getPojo() {
    POJO pojo = new POJO();
    pojo.setProp1("foo");
    pojo.setProp2("bar"); 
    return pojo;
  }
}

对正确URI的HTTP请求返回我期望的XML和JSON:

<?xml version="1.0" encoding="UTF-8"?>
   <pojo>
       <prop1>foo</prop1>
       <prop2>bar</prop2>
   </pojo>

{"prop1":"foo","prop2":"bar"}

接下来,我想更新服务以产生以下输出:

<?xml version="1.0" encoding="UTF-8"?>
   <pojo>
       <prop1>foo</prop1>
       <prop2>bar</prop2>
       <link>http://coolURI</link>
   </pojo>

{"prop1":"foo","prop2":"bar","link":"http://coolURI"}

其中“coolURI”是指向下一个资源的超媒体指针,显然不是POJO类的属性,因此其值将以不同方式封送到XML。请指出我需要采用的机制,我应该好好去。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您必须从getPojo()方法返回除POJO之外的其他内容。包含链接的扩展POJO,或以某种方式插入链接的Response对象。