java - Jersey - 返回 XmlRootElement/Entities 列表 - 未找到 MessageBodyWriter

标签 java json jaxb jersey jax-rs

此类 JAX-RS 序列化雪花有一百万个。让我再添加一个。

我有一个 JPA/JAXb 带注释的类:

@Entity
@XmlRootElement
public class Foo implements Serializable {
//..
}

我有一个服务试图以 JSON 形式返回这些对象的列表:

@Path("foo")
public class FooService {

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Response listFoos() {
        // get hibernate session
        List<Foo> foos = session.createQuery("from Foo").list();
        GenericEntity<List<Foo>> entity = new GenericEntity<List<Foo>>(foos) {};
        return Response.ok(entity).build();
    }
}

我尝试了多种变体。对我来说看起来最好的一个就像

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public List<Foo> listFoos() {
        // get session ..
        return session.createQuery("from Foo").list();
    }

所有这些都给我一些细微的变化:

SEVERE: MessageBodyWriter not found for
media type=application/json, type=class java.util.ArrayList, 
genericType=java.util.List<com.bar.baz.Foo>.

最佳答案

不要忘记添加依赖项,例如:

    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
    </dependency>

关于java - Jersey - 返回 XmlRootElement/Entities 列表 - 未找到 MessageBodyWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25318863/

相关文章:

java - 如何在没有 StringTokenizer 的情况下替换字符串中的标记

java - 使用 RallyRest API 从拉力赛中提取的车队容量与 CAAC 中显示的数字不匹配

jquery - 使用 Spring 进行 JQuery/Ajax 的 JSON 请求

xml - Scala:jaxb 或类似的?

java - 如何查找特定项目的存储位置 | eclipse

java - 如何使用 Selenium 获取 WebElement 文本

javascript - d3 sunburst 不使用内联 json 绘制

json - 使用 React hook 获取数据在嵌套 obj 属性上返回未定义

java - 我想通过解码将 XML 转换为 Java

java - JAXB - 将带有命名空间的 XML 发送到 SpringBoot 中的 REST Controller