gpt4 book ai didi

java - Spring Boot 数据休息 Jakson JSONSerializer 空

转载 作者:行者123 更新时间:2023-12-02 03:43:06 24 4
gpt4 key购买 nike

我有一个 Spring Boot 项目 1.3.3-Release,已将其部署到 Web Logic 12c 应用服务器上。该代码在嵌入式 tomcat 上运行良好,但在部署到 Web Logic 上时则运行不佳。

我有一个 Spring Data-Rest 存储库

@RepositoryRestResource(collectionResourceRel = "car", path = "car")
public interface CarRepo extends PagingAndSortingRepository<Meter, Long>
{
List<Car> findall();
}

我的车POJO

@Table(name="car")
@Entity
public class Car
{
@Id
@Column(name="ID")
private Long id;

@Column(name="manufacturer")
private String manufacturer;

.......
}

一切都会启动并加载网页,当我进行其余调用时,我可以看到 SQL 输出的 SQL 查询执行良好,但随后我在服务器日志中收到以下错误:

java.lang.AbstractMethodError: com.fasterxml.jackson.databind.JsonSerializer.isEmpty(Ljava/lang/Object;) at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:528)

我假设 data-rest 正在尝试自动将 JSON 响应从端点映射到 Car 对象,但由于某种未知原因而失败。

我从下面的链接中看到 Spring-Hateoas 存在问题,我知道 spring-data-rest 使用它,但似乎我使用的是最新版本的 spring-data-rest 这不应该是一个问题。

spring-hateoas error

任何帮助将不胜感激

最佳答案

这看起来像是 JsonSerializer 类的版本不匹配问题。我认为您的 weblogic 类加载器正在加载旧版本的 com.fasterxml.jackson.core:jackson-databind,其中 JsonSerializer 类没有 isEmpty 方法。

来自文档:

/**
* Method called to check whether given serializable value is
* considered "empty" value (for purposes of suppressing serialization
* of empty values).
*<p>
* Default implementation will consider only null values to be empty.
*
* @since 2.0
*/
public boolean isEmpty(T value) {
return (value == null);
}

关于java - Spring Boot 数据休息 Jakson JSONSerializer 空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36625143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com