gpt4 book ai didi

java.lang.NoSuchFieldError : ACCEPT_CASE_INSENSITIVE_VALUES

转载 作者:行者123 更新时间:2023-12-04 12:18:20 34 4
gpt4 key购买 nike

我有一个 Spring Boot 2 项目。
该模型是

@Entity
@SequenceGenerator(name = "climate_gen", sequenceName = "climate_gen", initialValue = 100)
public class Climate {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "climate_gen")
private long id;

private float temperature;
private float humidity;
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd'T'HH:mm:ss")
private LocalDateTime date;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "location_id", nullable = false)
private Location location;

数据库有默认记录,使用 curl 可以获取这些记录。但是如果我尝试发布
curl -H "Authorization: Bearer $TOKEN" -k -w "\n" -X POST -d '{"temperature":15.3,"humidity":65.4,"date":"2019-12-17T11:51:00","location":{"id":1}}' -H "Content-Type: application/json" https://mint191:8453/api/v1/climates

{"timestamp":"2019-12-18T13:53:22.473+0000","status":500,"error":"Internal Server Error","message":"ACCEPT_CASE_INSENSITIVE_VALUES","path":"/api/v1/climates"}

日志输出是

2019-12-18 13:53:42.056 ERROR 11401 --- [nio-8453-exec-8] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoSuchFieldError: ACCEPT_CASE_INSENSITIVE_VALUES] with root cause

java.lang.NoSuchFieldError: ACCEPT_CASE_INSENSITIVE_VALUES at com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase.acceptCaseInsensitiveValues(JSR310DateTimeDeserializerBase.java:126) ~[jackson-datatype-jsr310-2.10.1.jar!/:2.10.1] at com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase.createContextual(JSR310DateTimeDeserializerBase.java:86) ~[jackson-datatype-jsr310-2.10.1.jar!/:2.10.1]



我还有其他几个由字符串和引用组成的模型。这些都没有问题。

谷歌搜索后,我可能必须使用 ObjectMapper 并启用 ACCEPT_CASE_INSENSITIVE_VALUE 功能。如果是这样,我是否必须在服务级别设置它? Controller ?模型?

但在更一般的背景下,这里实际发生了什么? jackson 在提示什么?为什么是这个模型而不是其他模型?

最后,因为没有一个字段不为空,我尝试发布一系列请求,每个请求都缺少一个字段。在每种情况下,结果相同。

问候,

最佳答案

这是由于 jackson 库版本不兼容造成的。例如,jackson-core 的版本可能与 jackson-databind 的版本不同。跑

mvn dependency:tree -Dverbose

查找 jackson 版本以解决版本不兼容问题。

引用这个 - https://github.com/FasterXML/jackson-modules-java8/issues/81

关于java.lang.NoSuchFieldError : ACCEPT_CASE_INSENSITIVE_VALUES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59393835/

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