Джерси / JAXB / XML / JSON: добавление элементов в документы, созданные из POJO - PullRequest
2 голосов
/ 28 марта 2011

Я новичок в Джерси, JAXB и JSON, и довольно зеленый с XML.Я играю с простым веб-сервисом (который стремится быть 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;
  }
}

HTTP-запросы к правильному URI возвращают 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 Ответ

1 голос
/ 28 марта 2011

Вы должны возвратить что-то кроме POJO из вашего метода getPojo ().Либо расширенный POJO, содержащий ссылку, либо объект Response, который каким-либо образом вставляет ссылку.

...