Как вернуть Array в Jersey REST webservice? - PullRequest
1 голос
/ 04 января 2012

Я новичок в веб-сервисе REST, я пытался использовать реализацию на Джерси и написал простой код веб-сервиса, чтобы вернуть List вызывающему клиенту:

@GET
@Produces(MediaType.TEXT_XML)
public GenericEntity<List<String>> stringlist() {
    List<String> list = Arrays.asList("test", "as");
    return new GenericEntity<List<String>>(list) {
    };
}

Я не уверен, как получить значение списка вмой клиент.Я только что попытался использовать приведенный ниже код в своем клиенте, но получаю сообщение об ошибке.

service.path("rest")
       .path("getVal")
       .accept(MediaType.TEXT_XML)
       .get(GenericEntity.class

Может ли кто-нибудь помочь мне с простым кодом веб-сервиса, который передает массив клиенту?

1 Ответ

2 голосов
/ 05 января 2012

У вас должна быть возможность вернуть список некоторых аннотированных объектов @XmlRootElement и получить к ним доступ:

service.path("rest").path("getVal").accept(MediaType.TEXT_XML).get(new GenericEntity<List<MyObj>>{});

по некоторым причинам это сложнее с простыми строками, вам нужно инкапсулировать их с помощью JAXBElement

@GET
@Produces(MediaType.TEXT_XML)
public List<JAXBElement<String>> stringlist() {
     Arrays.asList(new JAXBElement[] {
        new JAXBElement(QName.valueOf("element1"), String.class, "ahoj"),
        new JAXBElement(QName.valueOf("element2"), String.class, "nazdar")
    };);
}

И получить к нему доступ так же, как в предыдущем случае, но вам нужно будет "попросить" для

new GenericEntity<List<JAXBElement<String>>>{}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...