JAX-RS:如何以 JSON 形式返回对象列表?

2024-03-05

我查看了文档Jackson http://wiki.fasterxml.com/JacksonInFiveMinutes,这让我很困惑:( 我的实体看起来像:

 @Entity
 @Table(name = "variable")
 public class Variable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    @Column(unique = true, nullable = false)
    private String name;

    @Column
    @Enumerated(EnumType.STRING)
    private VariableType type;

    @Column(nullable = false)
    private String units;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "created_on", nullable = false)
    private Date createdOn;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "retired_on", nullable = true)
    private Date retiredOn;

    @Column(nullable = false)
    private boolean core;

}

and my JAX-RS服务看起来像

@Path("/variable")
public class VariableResource {
    @Inject private VariableManager variableManager;

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Response getVariables() {
        return Response.ok(variableManager.getVariables()).build();
    }

}

当我使用测试此服务时curl http://localhost:8080/app/rest/variable,我在服务器日志中看到以下内容

[javax.ws.rs.core.Application]] (http--127.0.0.1-8080-6) Servlet.service() for servlet javax.ws.rs.core.Application threw exception: java.lang.NoSuchMethodError: org.codehaus.jackson.type.JavaType.<init>(Ljava/lang/Class;)V

有哪些最简单的方法可以将变量列表返回为 JSON?


通常它就像添加一样简单@XmlRootElement在您的实体上(我可以看到您正在使用 JPA/Hibernate@Entity/@Table,但你错过了@XmlRootElement).

@Entity
@Table(name = "variable")
@XmlRootElement
public class Variable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    @Column(unique = true, nullable = false)
    private String name;

    // ...

    @Column(nullable = false)
    private boolean core;
}

这是为了服务,使用Response来自 JAX-RS,并且还直接返回一个将由 JAX-RS 自动封送的对象:

@Path("/variable")
public class VariableResource {
    @Inject private VariableManager variableManager;

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Response getVariables() {
        return Response.ok(variableManager.getVariables()).build();
    }

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    // Same method but without using the JAX-RS Response object
    public List<Variable> getVariablesAlso() {
        return variableManager.getVariables();
    }
}

通常人们会创建一个DTO http://en.wikipedia.org/wiki/Data_transfer_object以避免将实体的内部值从数据库暴露到现实世界,但这不是强制性的,如果您可以暴露整个对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAX-RS:如何以 JSON 形式返回对象列表? 的相关文章

  • 在Maven中生成Version.java文件

    我有一个使用 Ant 脚本构建的 Java 项目 我正在尝试将项目转换为 Maven 其中一项任务生成一个名为 Version java 的 Java 源文件 其中包含编译时间戳的静态字符串表示形式 如下所示 package com foo
  • Jackson JSON + Java 泛型

    我正在尝试将以下 JSON 反序列化 映射到List
  • Java将字符串解析为double

    如何解析字符串中的这个 Double 00034800 变成 Double 值 最后两位数字实际上是小数点 所以我正在寻找的结果是348 00 是否有这样的格式可以与十进制格式一起使用 Well String s 00034800 doub
  • Android:如何暂停和恢复可运行线程?

    我正在使用 postDelayed 可运行线程 当我按下按钮时 我需要暂停并恢复该线程 请任何人帮助我 这是我的主题 protected void animation music6 music4 postDelayed new Runnab
  • 在Windows Server 2003下如何在本地系统帐户下运行jvisualvm.exe?

    我在带有 Java 1 6 u 20 的 Windows Server 2003 下将 GlassFish 3 0 1 作为 Windows 服务运行 总体上我很满意 我希望能够在这个 JVM 上使用 VisualVM 并使用无法在 Tom
  • 使用 Exec Maven 插件分叉 Java,而不使用“exec”目标

    来自文档 https www mojohaus org exec maven plugin exec exec在单独的进程中执行程序和Java程序 exec java在同一虚拟机中执行 Java 程序 我想 fork 一个 java 程序
  • 有人用过 ServiceLoader 和 Guice 一起使用吗?

    我一直想通过我们的应用程序 构建系统进行更大规模的尝试 但更高的优先级不断将其推到次要地位 这似乎是加载 Guice 模块的好方法 并且避免了关于 硬编码配置 的常见抱怨 单个配置属性很少会自行更改 但您几乎总是会有一组配置文件 通常用于不
  • 如何使用 Java 引用释放 Java Unsafe 内存?

    Java Unsafe 类允许您按如下方式为对象分配内存 但是使用此方法在完成后如何释放分配的内存 因为它不提供内存地址 Field f Unsafe class getDeclaredField theUnsafe Internal re
  • 如何使用 Java Apache POI 隐藏 Excel 工作表中以下未使用的行?

    我正在使用数据库中的数据填充模板 Excel 工作表 for Map
  • getCurrentSession 在网络中休眠

    我正在使用 hibernate 和 jsp servlet 编写一个基于 Web 的应用程序 我读过有关sessionFactory getCurrentSession and sessionFactory openSession方法 我知
  • 为什么 jar 执行的通配符在 docker CMD 中不起作用?

    我有一个Dockerfile与以下CMD启动我的 Spring Boot 应用程序 FROM java 8 jre CMD java jar app file jar 当我尝试从创建的图像启动容器时 我得到 Error Unable to
  • 在光标所在行强制关闭!

    嘿 我正在尝试创建一个应用程序来查找存储在 SQlite 数据库中的 GPS 数据 但我面临一个问题 我构建了一个 DbAdapter 类来创建数据库 现在我尝试使用以下函数从另一个类获取所有数据上的光标 public Cursor fet
  • 为什么在将 String 与 null 进行比较时会出现 NullPointerException?

    我的代码在以下行中出现空指针异常 if stringVariable equals null 在此语句之前 我声明了 stringVariable 并将其设置为数据库字段 在这个声明中 我试图检测该字段是否有null值 但不幸的是它坏了 有
  • 如何使用双重调度来分析图形基元的交集?

    我正在分析图形基元 矩形 直线 圆形等 的交互并计算重叠 相对方向 合并等 这被引用为双重调度的一个主要示例 例如维基百科 http en wikipedia org wiki Double dispatch 自适应碰撞算法通常要求 不同的
  • 在java程序中使用c++ Dll

    我正在尝试使用System LoadLibrary 使用我用 C 编写的一个简单的 dll UseDllInJava java import com sun jna Library import com sun jna Native imp
  • IntelliJ Idea:将简单的 Java servlet(无 JSP)部署到 Tomcat 7

    我尝试按照教程进行操作here http wiki jetbrains net intellij Creating a simple Web application and deploying it to Tomcat部署 servlet
  • Lombok 不适用于 Eclipse Neon

    我下载了lombok jar lombok 1 16 14 jar 并将其放入我的下载中 然后我点击这个 jar 执行正确地识别了我的 MacOS 上的 Eclipse 实例 然后我选择了我想要的实例 Lombok也在pom xml中指定
  • Android ScrollView,检查当前是否滚动

    有没有办法检查标准 ScrollView 当前是否正在滚动 方向是向上还是向下并不重要 我只需要检查它当前是否正在滚动 ScrollView当前形式不提供用于检测滚动事件的回调 有两种解决方法可用 1 Use a ListView并实施On
  • 使用 DBCP 配置 Tomcat

    在闲置一段时间 几个小时 后 我们收到了 CommunicationsException 来自 DBCP 错误消息 在异常中 位于这个问题的末尾 但我没有看到任何配置文件中定义的 wait timeout 我们应该看哪里 在 tomcat
  • 设置 TreeSet 的大小

    有没有办法像数组一样对 Java 集合中的 TreeSet 进行大小限制 例如我们在数组中 anArray new int 10 数组具有固定长度 在创建数组时必须指定该长度 A TreeSet当您向其中添加元素时会自动增长 您无法设置其大

随机推荐

  • SecCertificateRef:如何获取证书信息?

    我有一个证书 SecCertificateRef 我可以检查它是否有效 并且可以使用 SecCertificateCopySubjectSummary 提取 摘要 总结 到底是什么 我不理解术语 包含人类可读的证书内容摘要的字符串 在苹果文
  • 获取绑定到 Entry 小部件的 StringVar

    我正在编写一个简单的 GUI 程序 需要从 ini 文件加载默认值 我已经为 Entry 小部件指定了名称 并且可以通过以下方式获取它nametowidget方法 但是 我找不到访问绑定到条目小部件的 StringVar 并更新其值的方法
  • 右浮动 div 和最小宽度,div 在浏览器调整大小时移动到新行

    抱歉 标题没有很好地解释 但我会尽力在这里解释问题 如果我可以这样称呼它 那么这个特定问题可能有一个非常简单的解决方案 但我只是无法仅使用 css 来解决它 基本上我有一个父级 包装器 div 它设置了最小宽度和2个浮动子级 当我创建动态页
  • Docker-compose 链接与 external_links

    我相信这是一个简单的问题 但我仍然没有从 Docker compose 文档中得到它 链接和外部链接有什么区别 我喜欢 external links 因为我想要核心 docker compose 并且我想在不覆盖核心链接的情况下扩展它 我到
  • MongoParseError:URI 没有主机名、域名和 tld

    当我尝试将我的应用程序 nodejs 连接到 mongodb 时 出现此错误 我真的很感谢你在这里的帮助 MongoParseError URI does not have hostname domain name and tld at p
  • Android 旋转提示

    我有一个问题android prompt对于一个旋转器 我在 XML 文件中使用了以下代码 但它不起作用
  • 保存和加载数据(iphone sdk)

    我想知道在 iPhone 应用程序中保存和加载数据的最佳方法是什么 我正在尝试将字符串保存到文本文件或类似的文件中 然后将它们加载到表视图中 以便文本文件中的第一个条目是表视图中的第一行 依此类推 有人有一个想法我怎么能意识到这一点 提前致
  • npm 安装期间 libssh2 中“C 编译器无法创建可执行文件”

    我在 npm install 期间遇到以下错误nodegit http www nodegit org gt email protected cdn cgi l email protection preinstall home mhu no
  • 通过 SQL 身份验证连接时如何获取域用户名

    我有一个连接到 SQL Server 2000 的应用程序 使用通用 SQL 登录和 SQL 身份验证 我想通过触发器实现一些日志记录来跟踪数据更改 我不能使用USER NAME 因为这会返回通用帐户 我已经翻阅过master syspro
  • 从 S3 下载工件时代码构建访问被拒绝

    我的 CodeBuild 配置有 CodePipeline S3是我的神器商店 尽管已附加具有足够访问权限的 IAM 角色 但我仍然收到访问被拒绝消息 错误消息的屏幕截图 我已经检查了与 Codebuild 关联的服务角色 它附有以下政策
  • 增加子图之间的距离

    我有以下代码 digraph g graph rankdir LR compound true subgraph cluster0 graph label Ready n nAllowed Purchaser Operations nope
  • 我做的 df.Merge 错了吗?

    所以我有一个 df1 看起来有这一行 PlayDate Timeslot UserID 2005 09 09 6 16 1 59 我有 df2 其中包含 UserID PlayDate Timeslot PlayCount EstProb
  • 如何在Java中将HTTP状态码转换为文本?

    如何在 Java 中将 HTTP 状态代码转换为其文本表示形式 我的意思是是否有此类转换的现有实现 到目前为止我发现的最好的是java ws rs core Response Status fromStatusCode 它仅转换所有状态的有
  • C 和 C++ 中的快速 7x7 2D 中值滤波器

    我正在尝试将以下代码从 MATLAB 转换为 C function data process data data medfilt2 data 7 7 symmetric mask fspecial gaussian 35 35 12 dat
  • java中管道模式的实现

    阅读有关管道模式的信息here http parlab eecs berkeley edu wiki media patterns pipeline v1 pdf 如何在java中实现管道模式 有没有使用管道模式的开源java项目 关于 如
  • macOS 上的通用链接

    从 iOS9 开始 通用链接可以在 iOS 上使用 但我想知道 macOS 上是否有类似的东西 我们有一个应用程序 它是带有相应 Web 应用程序的 macOS 应用程序 我们希望用户单击链接在 Mac 应用程序中打开 而不是使用目标链接打
  • 如何跨多个 Pull Request 并行运行持续集成?

    我正在测试 Jenkins 的使用Github 拉取请求构建器插件 https wiki jenkins ci org display JENKINS GitHub pull request builder plugin我已经在 Githu
  • 处理已弃用的 android.text.ClipboardManager

    android text ClipboardManager自 API 级别 11 起已弃用 并替换为android content ClipboardManager source http developer android com ref
  • Tkinter:没有标题栏但可调整大小的窗口

    我知道的是 如果我想创建一个没有标题栏的窗口 我可以写 root Tk root overrideredirect 1 但我也希望窗口可以调整大小 有什么解决办法吗 仅供参考 我正在 Windows 机器上工作 尽管我不确定这是否真的重要
  • JAX-RS:如何以 JSON 形式返回对象列表?

    我查看了文档Jackson http wiki fasterxml com JacksonInFiveMinutes 这让我很困惑 我的实体看起来像 Entity Table name variable public class Varia