DTO выглядит следующим образом:
Код: Выделить всё
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.util.List;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
@Builder
public class PlayerActivityDto {
@JacksonXmlProperty(localName = "playerActivityId", isAttribute = true)
private String brandId;
@JacksonXmlProperty(localName = "player")
private PlayerDto player;
@JacksonXmlProperty(localName = "playerActivityDetail")
private PlayerActivityDetailDto playerActivityDetail;
@Setter
@Getter
@JacksonXmlProperty(localName = "summaryBalance")
@JacksonXmlElementWrapper(localName = "startingBalanceList")
private List startingBalanceList;
@Getter
@Setter
@JacksonXmlProperty(localName = "summaryBalance")
@JacksonXmlElementWrapper(localName = "endingBalanceList")
private List endingBalanceList;
@JacksonXmlProperty(localName = "playerMovement")
@JacksonXmlElementWrapper(localName = "playerMovementList")
private List playerMovementList;
}
Однако Джексон создает это исключение :
Не удалось оценить сериализацию Джексона для типа [класс PlayerActivityDto]: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: конфликтующие определения метода получения для свойства summaryBalance: PlayerActivityDto#getStartingBalanceList() vs PlayerActivityDto#getEndingBalanceList()
Я пытался присвоить этим спискам собственные сеттеры и геттеры, но, похоже, это не помогает.
РЕДАКТИРОВАТЬ: я нашел обходной путь
Чтобы решить эту проблему, мне пришлось создать новый класс для переноса списка.EDIT: я нашел обходной путь
Чтобы решить эту проблему, мне пришлось создать новый класс для переноса списка.EDIT: я нашел обходной путь
Чтобы решить эту проблему, мне пришлось создать новый класс для переноса списка.EDIT: я нашел обходной путь
Чтобы решить эту проблему, мне пришлось создать новый класс для переноса списка.EDIT: я нашел обходной путь
Чтобы решить эту проблему, мне пришлось создать новый класс, чтобы обернуть список.EDIT. p>
PlayerActivityDto
Код: Выделить всё
@Builder
public class PlayerActivityDto {
@JacksonXmlProperty(localName = "playerActivityId", isAttribute = true)
private String brandId;
@JacksonXmlProperty(localName = "player")
private PlayerDto player;
@JacksonXmlProperty(localName = "playerActivityDetail")
private PlayerActivityDetailDto playerActivityDetail;
@JacksonXmlProperty(localName = "startingBalanceList")
private SummaryBalanceListWrapper startingBalanceList;
@JacksonXmlProperty(localName = "endingBalanceList")
private SummaryBalanceListWrapper endingBalanceList;
@JacksonXmlProperty(localName = "playerMovement")
@JacksonXmlElementWrapper(localName = "playerMovementList")
private List playerMovementList;
}
Код: Выделить всё
@Builder
public class SummaryBalanceListWrapper {
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "summaryBalance")
private List summaryBalanceList;
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... ckson-inva