【问题标题】:Jersey REST channel on weblogic returned 'null' instead of serialized JSON - no errorweblogic 上的 Jersey REST 通道返回“null”而不是序列化 JSON - 没有错误
【发布时间】:2026-01-30 03:45:02
【问题描述】:

我在 weblogic 上部署了 jersey REST 通道。所有方法都配置为返回 JSON 数据。泽西在里面使用杰克逊。这种方法之一一直在工作并返回正确的数据,但另一个返回“null”。从字面上看,这意味着“null”被写在屏幕上。但是该方法绝对不会返回 null,因为我记录了所有内容。

似乎没有错误,因为日志中没有打印错误,并且我在 log4j 配置中为根记录器设置了“信息”级别。所以我有点迷茫 - 不知道当没有错误报告并且简单地返回 null 时会出现什么问题。任何人都可以帮忙吗?如何至少找出问题所在?

--编辑--

在我的情况下,这是由于响应类字段中缺少 getter/setter 引起的。有一个构造函数,它被 GSON 使用,但不是 jersey/jackson。但令人讨厌的是,这个工具只是返回 null 并没有抛出任何异常。所以,问题是,如何调试此类错误,是否可以强制 jersey/jackson 打印他们发现的问题,而不是这种幼稚的行为;)

【问题讨论】:

  • 哪个工具返回空值?构造函数与序列化 JSON 有什么关系(它们仅用于反序列化,即在读取 JSON、创建对象时)?
  • 但是,一般来说,从数据绑定返回 null 并没有错;或写入值为“null”的 JSON。究竟应该抛出什么,为什么?你有代码示例吗?这里实际的具体问题是什么?

标签: java json weblogic jersey jackson


【解决方案1】:

你检查了被返回对象的toString方法吗?

【讨论】:

  • 这正是我写入日志的内容。并且对象是正确和完整的。
  • 没有问题,但是代码还是有问题。我仍然希望该工具能够打印错误,而不仅仅是返回 null。
  • 你可以为你的对象的序列化/反序列化添加单元测试吗?
  • @lechlukasz 究竟是什么错误?在一般情况下,Null 是一个完全可以接受的序列化 JSON 值。
  • 错误是值没有序列化,但是这个错误没有显示出来。
【解决方案2】:

我已经通过使用将对象手动序列化为JSON来解决了这个问题,并且我将函数返回类型声明为String,并且在下部署和使用它没有任何问题并且有调试错误,所以这是我的工作为我的解决方案,我会推荐给任何有类似问题的人。

【讨论】:

    最近更新 更多