Не знаю, почему, но маршаллер в моей веб-странице загрузки Spring/REST игнорирует анкеты javax.xml.bind.annotation.*
.Почему Spring Boot не исправляет XML правильно/игнорирует XML javax.xml.bind.annotation. *?
ValidationErrorResponse следует перемаршрутизировать в поле Errors
XML.
@XmlRootElement(name = "Errors")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlSeeAlso(ValidationError.class)
public class ValidationErrorResponse {
@XmlElementWrapper(name = "Errors")
private List<ValidationError> errors = new ArrayList<ValidationError>();
@XmlAttribute(name = "count")
public int getCount() {
return this.errors.size();
}
public void addError(ValidationError error) {
this.errors.add(error);
}
@XmlElement(name = "Errors")
public List<ValidationError> getErrors() {
return errors;
}
}
ValidationError должен быть выстраивали в Error
XML подполе в Errors
поле.
import javax.xml.bind.annotation.*;
@XmlRootElement(name = "Error")
@XmlAccessorType(XmlAccessType.FIELD)
public class ValidationError {
@XmlAttribute(name = "field")
private final String field;
@XmlAttribute(name = "message")
private String message;
public ValidationError(String field) {
this.field = field;
}
public void setMessage(String message) {
this.message = message;
}
public String getField() {
return field;
}
public String getMessage() {
return message;
}
}
Но он возвращает этот XML-строку
<ValidationErrorResponse>
<errors>
<errors>
<field>transaction</field>
<message>message...</message>
</errors>
<errors>
<field>transaction</field>
<message>message...</message>
</errors>
<errors>
<field>transaction</field>
<message>message...</message>
</errors>
</errors>
<count>3</count>
</ValidationErrorResponse>
и должен быть
<Errors count=3>
<Error field="..." message="....">
<Error field="..." message="....">
<Error field="..." message="....">
</Errors>
Что я делаю неправильно?