【问题标题】:JsonMappingException while accessing REST endpoint访问 REST 端点时出现 JsonMappingException
【发布时间】:2025-12-29 10:25:17
【问题描述】:

我正在尝试使用 jersey 客户端访问 REST 端点。这个端点接受 formParams 并且响应应该是 JSON 格式。在访问其余端点时,我遇到了错误

com.fasterxml.jackson.databind.JsonMappingException: 没有为类 javax.ws.rs.core.Form 找到序列化程序,也没有发现创建 BeanSerializer 的属性(为避免异常,请禁用 SerializationFeature.FAIL_ON_EMPTY_BEANS)强>

我的 REST 服务接受 formParam 和 queryParam 参数。要通过客户端调用 REST 端点,我使用以下代码。 form 是 Form 的一个实例,具有表单参数。

Client client = ClientBuilder.newClient();
        client.register(LogFilter.class);
 WebTarget wr= client.target(getTarget());
     wr = setPath(wr, paths);
        return wr.request(MediaType.APPLICATION_FORM_URLENCODED)
                 .accept(MediaType.APPLICATION_JSON)
                 .post(Entity.form(form), Response.class);

知道导致此类错误的原因是什么吗?

【问题讨论】:

    标签: json rest jersey jax-rs


    【解决方案1】:

    我将回答我自己的问题。 LogFilter 试图将转换表单实体写入 Json 字符串,因此出现错误。 仅注释掉该过滤器即可解决问题。

    【讨论】: