Как клиент Java получает доступ к целочисленному массиву из веб-службы Java RESTful? - PullRequest
0 голосов
/ 27 января 2011

Я перефразирую свой собственный вопрос по адресу: Возвращая массив примитивов через REST

Я использую Джерси, и я не могу понять, какие коды / аннотации следует добавлять на концах сервера и клиента, чтобы вернуть «массив» примитивов (строки, целые числа, что угодно). Я могу сделать это очень легко в SOAP ... разве нет никакого легкого выхода в REST? У меня есть несколько сложных способов сделать это здесь: как-к-сериализации в Java-примитивов, использующих-jersey-

Кусок кода (как серверный, так и клиентский) будет очень полезен!

1 Ответ

2 голосов
/ 28 января 2011

Обернуть массив примитивов в аннотированный объект JAXB. Джерси будет использовать встроенные MessageBodyReader и MessageBodyWriter

* 1005 Е.Г. *

import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlAccessorType;

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public IntArray {

 private int[] ints;

 public IntArray() {}

 public IntArray(int[] ints) {
  this.ints = ints;
 }

 public int[] getInts() {
  return ints; 
 } 
 ...
}

На стороне сервера:

@Path("ints")
public class TestResource {

 @GET
 @Produces("application/xml")
 public Response get() {
  int[] ints = {1, 2, 3};
  IntArray intArray = new IntArray(ints);
  return Response.ok(intArray).build();
 } 
}

На стороне клиента:

Client client = new Client();
WebResource wr = client.resource("http://localhost:8080/service");
IntArray intArray = wr.path("/ints").get(IntArray.class);
int[] ints = intArray.getInts();

Попробуйте что-нибудь подобное. Я не тестировал код, так что, надеюсь, он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...