Java 8 dropwizard中的反序列化问题,无法转换ImmutableList<;字符串>;到字符串列表

Java 8 dropwizard中的反序列化问题,无法转换ImmutableList<;字符串>;到字符串列表,java-8,dropwizard,immutables-library,Java 8,Dropwizard,Immutables Library,我正在使用dropwizard 1.1.0和Java8功能。我也在使用Immutables包。当我试图将利润中心列表(字符串列表)从JSON转换为java等价物时,我面临一个反序列化问题 错误 找不到非具体集合类型的反序列化程序 [收集类型;类com.google.common.collect.ImmutableList, 包含[简单类型,类java.lang.String]] 不可变Java类 @Value.Immutable @JsonSerialize(as = ImmutableReco

我正在使用dropwizard 1.1.0和Java8功能。我也在使用Immutables包。当我试图将利润中心列表(字符串列表)从JSON转换为java等价物时,我面临一个反序列化问题

错误

找不到非具体集合类型的反序列化程序 [收集类型;类com.google.common.collect.ImmutableList, 包含[简单类型,类java.lang.String]]

不可变Java类

@Value.Immutable
@JsonSerialize(as = ImmutableReconciliationInputDTO.class)
@JsonDeserialize(as = ImmutableReconciliationInputDTO.class)
public interface ReconciliationInputDTO extends Serializable {

@JsonProperty("date")
@JsonDeserialize(using = LocalDateDeserializer.class)
@JsonSerialize(using = LocalDateSerializer.class)
LocalDate asOfDate();

@JsonProperty("label")
String label();

@JsonProperty("entityId")
String entityId();

@JsonProperty("entityName")
String entityName();

@JsonProperty("departments")
List<String> departments();
在我的POM.xml中,我将以下内容设置为我的依赖项

<dependency>
    <groupId>com.fasterxml.jackson.module</groupId>
    <artifactId>jackson-module-parameter-names</artifactId>
    <version>2.8.7</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jdk8</artifactId>
    <version>2.8.7</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.8.7</version>
</dependency>

com.fasterxml.jackson.module
jackson模块参数名
2.8.7
com.fasterxml.jackson.datatype
jackson-datatype-jdk8
2.8.7
com.fasterxml.jackson.datatype
jackson-datatype-jsr310
2.8.7

AFAIK您还应该将
番石榴
作为jackson模块。在这里:

他们还举了一个如何整合的例子:

registerModule(new GuavaModule())

我之前已经添加了guava模块,并且在初始化阶段在dropwizard应用程序中注册了它。但这没有帮助。我再次尝试发布你的推荐信,但我遇到了同样的问题。我想Jackson无法将不可变列表转换为相应的Java集合。不确定如何修复此问题。@alice:您确定您的应用程序只包含一个
ObjectMapper
实例吗?是否您实际接收到的是与您配置的不同的?
<dependency>
    <groupId>com.fasterxml.jackson.module</groupId>
    <artifactId>jackson-module-parameter-names</artifactId>
    <version>2.8.7</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jdk8</artifactId>
    <version>2.8.7</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.8.7</version>
</dependency>
registerModule(new GuavaModule())