2016-12-17 5 views
0

Не знаю, почему, но маршаллер в моей веб-странице загрузки 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> 

Что я делаю неправильно?

ответ

0

Проблема вызывает jackson-dataformat-xml зависимость от моего пути к классам:

<dependency> 
      <groupId>com.fasterxml.jackson.dataformat</groupId> 
      <artifactId>jackson-dataformat-xml</artifactId> 
      <version>2.8.5</version> 
     </dependency> 

, когда я положил его все работы, как и ожидалось.

 Смежные вопросы

  • Нет связанных вопросов^_^