无法读取响应输出中的 application/json 消息

2024-02-08

我正在测试 REST API,当我进行 GET 调用来检索资源时,它会导致 500 内部服务器错误,并且在输出中返回具有媒体类型的消息application/json:

[
  {
    "messageType": "Some error type",
    "messageText": "Some message text",
    "moreInfo": "Some info"
  }
]

请注意,在上面的输出中,Json 位于里面[]

我想读取的值messageText从上面的输出响应。我尝试过 -

JsonObject jsonObject = response.readEntity(JsonObject.class);

但它会导致以下错误:

java.lang.IllegalStateException: Entity input stream has already been closed.
    at org.glassfish.jersey.message.internal.EntityInputStream.ensureNotClosed(EntityInputStream.java:225)
    at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:830)
    at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:783)
    at org.glassfish.jersey.client.ClientResponse.readEntity(ClientResponse.java:326)
    at org.glassfish.jersey.client.InboundJaxrsResponse$1.call(InboundJaxrsResponse.java:111)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:399)
    at org.glassfish.jersey.client.InboundJaxrsResponse.readEntity(InboundJaxrsResponse.java:108)

您能帮我如何读取输出中的消息吗?我正在使用泽西库。


根据javaDoc https://jersey.java.net/apidocs/2.7/jersey/javax/ws/rs/core/Response.html#readEntity(java.lang.Class),对 readEntity 的调用会关闭响应实体,因此当您进行另一个 readEntity 调用时,您会收到 IllegalStateException。

除非提供的实体类型是输入流,否则此方法 自动关闭未消费的原始响应实体数据 如果打开则流。

就我而言,有这样的表达response.readEntity(String.class)当我在调试模式下运行代码时,调试透视图的表达式窗格中的 引起了此异常。表达式的求值消耗了实体并导致其关闭。

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

无法读取响应输出中的 application/json 消息 的相关文章

随机推荐

  • 当我将文本从 java servlet 加载到 JTextPane 时,为什么会丢失换行符?

    我尝试使用 java servlet 加载包含多行文本的文本文件的内容 当我在浏览器中测试 servlet 时 它工作正常 文本加载新行字符 但是当我将它加载到我的 swing 应用程序中的字符串然后使用textpane setText t
  • 从 int** 到 const int** 的转换

    为什么我会进入这段代码 void foo const int int main int v new int 10 foo v return 0 这个错误 invalid conversion from int to const int fp
  • 使用 Mapstruct 作为 JOOQ 的 RecordMapper

    我想实现我自己的RecordMapper并使用 Mapstruct 将 Record 映射到 POJO 我不太明白如何实现这一点 我遵循了文档的这一部分 https www jooq org doc 3 13 manual sql exec
  • unicode中字符串的长度不同

    尽管字符串中的字符数相同 但为什么以下字符串的长度不同 echo strlen 馐 馑 馒 馓 馔 馕 首 馗 馘 br echo strlen br Outputs 35 26 第一批字符每个占用 3 个字节 因为它们在 39000 个字
  • 如何删除信号处理程序

    我已经制作了以下信号处理程序 struct sigaction pipeIn pipeIn sa handler updateServer sigemptyset pipeIn sa mask sa sa flags SA RESTART
  • 如何在iPhone上进行Base64编码

    如何在iPhone上进行Base64编码 我发现了一些看起来很有希望的例子 但永远无法让它们在手机上工作 你可以看一个例子here http iosdevelopertips com core services encode decode
  • 图像捕获延迟 - React Native Camera / Expo Camera

    我正在尝试实现与 Facebook 或 Instagram 相同的功能 即时预览相机拍摄的图像 此时 当调用此函数时 我的 take 被正确获取 takePicture async function if this camera this
  • 将 8 字节的小端二进制转换为双精度浮点数

    我有一个二进制文件 我逐字节读取 我遇到一个 8 字节长的部分 包含一个双精度浮点 小端 我不知道如何读取它并通过掩蔽和 或转换正确计算它 具体来说 文件类型是 LAS 但这并不重要 Java有什么技巧吗 您可以使用ByteBuffer h
  • Python Fabric:如何响应键盘输入?

    我想自动响应某些程序提示的某些问题 例如 mysql 提示输入密码 或者 apt 询问 是 或 当我想使用 manage pyrebuild index 重建我的干草堆索引时 对于 MySQL 我可以使用 password 开关 并且我确信
  • 在 MSVC 中处理 __attribute__

    我想知道处理包含 GCC 的代码的最佳方法是什么 attribute 使用 MSVC 时的扩展 以下是处理此问题的安全方法 define attribute x blank should simply ignore thanks to C
  • 如何跨包引用 Android“资产”?

    我有一个以 免费 和 专业 版本发布的 Android 应用程序 我已经使用从两个版本引用的基础 库 项目设置了我的项目 这样我的包集如下所示 com example myapp com example myapp free com exa
  • 如何翻译活动记录模型验证

    当我提交有错误的表单时 它会返回一条错误消息 如何使用 i18n 翻译这些错误消息 我已经翻译了我视图中的所有其他文本 所以我知道 l18n 在 Rails 中是如何工作的 我现在明白了 2 errors prohibited this u
  • 寻找最高的键

    我只是对为什么我的代码不起作用感到困惑 这是我到目前为止的问题和代码 测试运行表明我的答案是错误的 给定字典d 找到字典中最大的key并将对应的值与变量关联起来val of max 例如 给定字典 5 3 4 1 12 2 2 将与val
  • 循环数组和另一个对象中的对象

    我有以下结构 我需要在 React 中获取内部值并通过 我想我需要获取一个值数组 例如 Bitcoin Etherium 并通过它进行映射 我怎样才能实现它 let arr CoinInfo Id 1182 Name BTC FullNam
  • 汇编中的结构或类

    我需要 C 中的结构或类之类的东西 例如 我需要一个带有数组和两个属性 大小和长度 的类以及一些函数 例如append和remove 如何使用宏和过程在汇编中实现这一点 Tasm 支持例如 struc String note without
  • Java流按2个字段排序

    我有需要按 2 个参数排序的项目列表 第一个参数是 orderIndex 并且我使该部分正常工作 参见下面的代码 orderIndex 之后的第二个参数是 amount 所以基本上第一个项目应该是顺序索引最低的项目 并且需要按数量排序 re
  • 具有路径变量的多个请求映射值

    RequestMapping value abcd employees value id public String getEmployees PathVariable value value String val PathVariable
  • PHPUnit @dataProvider 根本不起作用

    我已阅读有关该主题的文档 并且我的代码遵循数据提供程序实现的所有要求 首先 这是测试的完整代码 http pastebin com tuT9pV9h以防万一它是相关的 这是实现数据提供者的函数 Test the createGroup fu
  • Webpack 在 SSR 构建期间挂起 - Angular 12

    我正在运行 webpack v5 50 用于 Angular 项目的服务器端渲染构建 配置如下 module exports mode none entry server server ts externals dist server ma
  • 无法读取响应输出中的 application/json 消息

    我正在测试 REST API 当我进行 GET 调用来检索资源时 它会导致 500 内部服务器错误 并且在输出中返回具有媒体类型的消息application json messageType Some error type messageT