Spring REST 3 и JacksonMapper для JSON - PullRequest
       14

Spring REST 3 и JacksonMapper для JSON

1 голос
/ 28 февраля 2012

В настоящее время мы используем весенние веб-сервисы, которые поддерживают application / xml и application / json, которые работают нормально. Новый сервис требует возврата строки XML. Строка должна храниться в формате XML, но я считаю, что application / json также сериализует содержимое строки. Есть ли способ предотвратить это?

редактирует:

//dto:
@XmlRootElement(name="mydata")
public class MyData {
    private String someData;
    @XmlElement(required = true)
    private String content;
    @XmlElement
    public String getSomeData(){
         return someData;
    }
    public String getContent() {
        return content;
}
   //setter and other fields...
}

Исходя из вышесказанного, поле содержимого - это строка XML в моем классе. Я хотел бы, чтобы поле содержимого было возвращено, но не сериализовано Это возможно ?

Ответы [ 2 ]

0 голосов
/ 28 февраля 2012

Если эта строка является просто сериализованным объектом (точно так же, как JSON с @ResponseBody), тогда все, что вам нужно, это jackson-jaxrs lib и пометка возвращаемого компонента с javax.xml.bind.annotation.* аннотациями:

//in controller:
@RequestMapping
public @ResponseBody MyData getMyData(){
    MyData md = new MyData();
    //...
    return md;
}

//dto:
@XmlRootElement(name="mydata")
public class MyData {
    private String someData;
    @XmlElement
    public String getSomeData(){
         return someData;
    }
    //setter and other fields...
}
0 голосов
/ 28 февраля 2012

Если вы хотите вернуть XML, добавьте эту аннотацию к сервису:

@RequestMapping(method = RequestMethod.POST, value = "xyz", headers = "Accept=application/xml")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...