java - 如何在 Jersey REST Web 服务中返回数组?

标签 java jersey

我是 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/

相关文章:

java - 如何从单独的类访问主世界的当前 IWorld 实例

java - 如何为 Mule 和 Jersey 使用 Grizzly 嵌入式服务器

java - RecyclerView的OnScrollListener是抽象类?

java - OpenJDK 1.8.0_242,MaxRAMFraction 设置未反射(reflect)

java - 线程 "main"java.lang.NoClassDefFoundError 中出现异常无法初始化类 org.bytedeco.javacpp.avutil

java - 是否可以将 Grizzly 设置为正常关机?

java - JSON、Jersey 和 Jackson 中的多态性

java - 如何为@PathParam 使用自定义类型?

java - 使用 JAX-RS 处理 REST API 中的错误

java - Streams API::如何从 LIST<Object> 修改自定义对象的变量?