【问题标题】:@Consumes annotation throwing Exception, How to Handle@Consumes 注解抛出异常,如何处理
【发布时间】:2020-06-12 18:55:11
【问题描述】:

我的服务接受一个 Json 并为我使用它并将其映射到我的 DTO。

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Path("/service")
@Produces(MediaType.APPLICATION_JSON)
public Response myService(Request requestBody) {
     //Stuff
}

但是,如果特定元素为空,我的 DTO 中的某些字段将引发 JsonMapperException 异常。

由于这发生在我实际进入服务之前,我该如何优雅地处理这个异常并返回一个带有自定义错误代码和消息的 Json?

此外,我如何将一个元素标记为“可选”,以便映射器在它为空或缺失时将忽略它,但如果它非空则将其序列化?

【问题讨论】:

    标签: java json serialization jackson annotations


    【解决方案1】:

    要回答我自己的问题。

    引发异常的原因是我试图在我的 DTO 中执行逻辑。如果传入元素为 NULL,则该逻辑将失败。解决这个问题没有简单的方法。

    但是,最佳实践要求在 DTO 中执行尽可能少的逻辑。所以我只是将逻辑移到服务的主要方法并在那里进行计算。

    问题解决了。

    【讨论】:

      猜你喜欢
      • 2012-08-05
      • 2013-07-24
      • 2019-03-20
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      • 2021-12-22
      • 2013-03-05
      相关资源
      最近更新 更多