java - @Consumes注解抛出异常,如何处理

标签 java json serialization jackson annotations

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

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

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

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

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

最佳答案

要回答我自己的问题。

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

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

问题已解决。

关于java - @Consumes注解抛出异常,如何处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60455628/

相关文章:

Java 网络应用程序 : strange memory statistics

java - java 中 goto 的替代方案

python - 是否有用于 Python 2.7 的 64 位二进制版本的 ujson 或 cjson

Avro 与 Protobuf 的性能指标

serialization - Spring中的依赖注入(inject)和序列化对象

java - Google App引擎身份验证问题(Google帐户API)

java - 如何本地化 JOptionPane 消息标题?

javascript - 在javascript中执行for循环不成功

json - 从非嵌套的 json 数据文件创建配置单元表给出的输出为 null

java - 如何使用GSON序列化json字符串并从中提取键和值?