使用 gradle 運行集成測試時出現(xiàn)異常。我得到的例外是:com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of AbstractCommonDetails: abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type informationSummary 類對我試圖反序列化的細節(jié)有以下注釋:@Datapublic class Summary { @JsonTypeInfo(use = NAME, include = PROPERTY, property = "@type") @JsonSubTypes({ @JsonSubTypes.Type(value = CardDetails.class, name = "CARD") }) private AbstractCommonDetails details;}AbstractCommonDetails 如下所示:@Getter@Setterpublic abstract class AbstractCommonDetails { private Long id; public abstract String getPaymentMethod();}并且 CardDetails 具有注釋和方法的@JsonTypeName("CARD")實現(xiàn)。@DatagetPaymentMethodObjectMapper 的配置和反序列化如下:new ObjectMapper().findAndRegisterModules().readValue(IOUtils.toString(inputStream, "UTF-8"), Summary.class);和示例 json:{ "details":{ "@type":"CARD", "amount":"10.00"}奇怪的是 - 將集成測試作為 Junit 測試運行成功,但是當使用gradlew test命令運行相同的集成測試時,它會失敗,并出現(xiàn)前面提到的異常??赡苁鞘裁丛颍?
1 回答

慕森卡
TA貢獻1806條經(jīng)驗 獲得超8個贊
如果測試有效IDE
但無法正常工作,gradle
則意味著您需要查看gradle
配置。您使用Lambook
,因此您需要確保gradle
配置知道Lambok
注釋。
添加回答
舉報
0/150
提交
取消