我是 REST Web 服务的新手,我尝试使用 Jersey 实现并编写了一个简单的 Web 服务代码以将 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
有人可以帮我编写一个简单的 Web 服务代码,将数组传递给客户端吗?
最佳答案
您应该能够仅返回一些 @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>>>{}
关于java - 如何在 Jersey REST Web 服务中返回数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8725712/