当前位置: 首页 > 知识库问答 >
问题:

quarkus-resteasy-jackson映射时未知字段时的自定义消息

丌官昊天
2023-03-14

我想为无法识别的字段和其他带有请求正文的错误设置自定义错误消息。我试过ExceptionMapper,但它不起作用:/使用Quarkus和杰克逊

public class ReqDTO {
    private String a;
}

发送请求时:

{
    "a": "a"
}

看起来不错。但发送时:

{
    "a": "a",
    "b": "b"
}
Unrecognized field "b"; (class ReqDTO), not marked as ignorable
@Provider
public class ExHandler implements ExceptionMapper<JsonMappingException>{

    public Respone toResponse(JsonMappingException e) { 
        //response bad field impl
    }
}
@Path("/")
public class Controller {
    @Post
    @Consume(APPLICATION_JSON)
    @Produces(TEXT_PLAIN)
    public Response getA(@Valid ReqDTO reqDTO){
        //logic
    }
}

找到类似DeserializationProblemHandler的内容,但不知道如何更改handleUnknownProperty:/的消息

共有1个答案

崔博延
2023-03-14
@Singleton
RegisterCustomModuleCustomizer implements ObjectMapperCustomizer {

    public void customize(ObjectMapper mapper){
        mapper.addHandler(new DeserializationProblemHandler(){
            @SneakyThrows
            @Override
            public boolean handleUnknownProperty(...... params){
                throw new ApplicationException("ERRO_BODY_MESS");
            }
        }
    }
}

@Provider
public class ExHandler implements ExceptionMapper<ApplicationException>{

    public Respone toResponse(ApplicationException ex) { 
        return Response.status(BAD_REQUEST).entity(ex.getMessage()).build();
    }
}
 类似资料:
  • 我有一个用例,其中我需要维护两组JSON输出,一组具有JSON属性的漂亮名称,另一组没有。所以我决定自定义ObjectMapper,以便它忽略字段上的@JSONProperty(“pretty name”)注释,而使用字段属性名。在本例中,希望得到以下JSON输出 具有漂亮名称的JSON输出如下所示 我的ObjectMapper配置代码如下所示 我看了一些其他的答案,但对我不起作用。我得到了一个N

  • 初始化服务器时,出现以下错误: java.lang.IllegalStateException:无法将[java.lang.String]类型的值转换为属性“Object Mapper”所需的类型[org.codehaus.jackson.map.objectMapper]:在org.springframework.beans.typeConverterDelegate.ConvertifEmen

  • 我是在resteasy-reactive项目时得到消息的。 (Build-70)[IO.Quarkus.Resteasy.Common.Deployment.ResteasyCommonProcessor]空:Quarkus检测到需要Mutiny响应编程支持,但quarkus-resteasy-mutiny扩展不存在。我使用了夸克斯-雷斯特阿西-反应-jackson,并有以下的依赖关系。 根据我的

  • 我使用ModelMapper的方式如下: 我有几个转换器类是Spring组件,它们注册自定义ModelMapper映射 但是当Spring启动时,由于调用了configure函数,并且源代码为null,所以我得到了以下错误。 这怎么可能呢? 我用错了吗? bean是这样声明的,Foo和FooModel不是最终的 重要编辑 实际上,即使在主类内的函数中显式创建映射,也会得到相同的NullPointe

  • 我在客户端使用AngularJS,在服务器端使用jersey jackson的Java实现RESTful webservice。 我正在使用HTTP PUT方法更新记录。我正在从角客户端应用程序向java webservice应用程序发送一个参数(JSON对象)。 我们的POJO类有一些默认值为0的基本数字字段(long/int)。但在接收到包含这些字段的空白字符串的JSON时,jersey ja