首页 > 解决方案 > 添加 JPA 注释后的 JAXB IllegalAnnotationExceptions

问题描述

我在这里读了几个线程,但仍然不明白为什么我会收到这个异常。一切都很好,我能够使用 Spring 从我的 SOAP Web 服务中获得正确的响应。但是后来我添加了 Spring Data JPA 和几个注释来将数据保存在我的数据库中,并且异常开始出现在响应 XML 中。

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "number", propOrder = {
    "code",
    "fileNames",
    "error"
})
@Entity
public class Number {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    @Column(name = "number")
    private int number;

    @XmlElement(required = true)
    @Column(name = "code")
    protected String code;

    @Column(name = "filenames")
    @Convert(converter = ListConverter.class)
    //@Transient
    protected List<String> fileNames;

    @XmlElement(required = true)
    @Column(name = "error")
    private String error;

    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String value) {
        this.code = value;
    }

    public List<String> getFileNames() {
        if (fileNames == null) {
            fileNames = new ArrayList<String>();
        }
        return this.fileNames;
    }

    public String getError() {
        return error;
    }

    public void setError(String value) {
        this.error = value;
    }

}

这就是我得到的回应:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode>
<faultstring xml:lang="en">2 counts of IllegalAnnotationExceptions</faultstring>
</SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

标签: javaspringsoapspring-data-jpajaxb

解决方案


我为“id”和“number”字段添加了@XmlTransient 注释,现在一切正常。


推荐阅读