我在Returning a primitive array through REST
重新构建我自己的问题我正在使用Jersey,我无法理解应该在服务器端和客户端添加哪些代码/注释来返回基元的“数组”(字符串,整数,任何东西)。我可以在SOAP中很容易地做到这一点......在REST中是不是有一些简单的方法?我在这里有一些复杂的方法: how-to-serialize-java-primitives-using-jersey-
一段代码(服务器和客户端)将受到很多赞赏!
答案 0 :(得分:2)
将原始数组包装在JAXB注释对象中。泽西岛将使用内置的MessageBodyReader
和MessageBodyWriter
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();
尝试类似的东西。我没有测试代码,所以希望它有效。