java客户端如何从java RESTful Web服务访问整数数组

时间:2011-01-27 16:33:39

标签: java rest jersey

我在Returning a primitive array through REST

重新构建我自己的问题

我正在使用Jersey,我无法理解应该在服务器端和客户端添加哪些代码/注释来返回基元的“数组”(字符串,整数,任何东西)。我可以在SOAP中很容易地做到这一点......在REST中是不是有一些简单的方法?我在这里有一些复杂的方法: how-to-serialize-java-primitives-using-jersey-

一段代码(服务器和客户端)将受到很多赞赏!

1 个答案:

答案 0 :(得分:2)

将原始数组包装在JAXB注释对象中。泽西岛将使用内置的MessageBodyReaderMessageBodyWriter

E.g。

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();

尝试类似的东西。我没有测试代码,所以希望它有效。

相关问题