【问题标题】:JAXB IllegalAnnotationExceptions after JPA annotations were added添加 JPA 注释后的 JAXB IllegalAnnotationExceptions
【发布时间】:2019-11-17 14:22:10
【问题描述】:

我在这里阅读了几个主题,但仍然无法理解为什么会出现此异常。一切都很好,我能够使用 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>

【问题讨论】:

  • 该版本的效果如何?您应该在控制台上看到一个完整的异常。它说什么?
  • @JensSchauder 我在控制台上没有看到任何异常,此响应后服务工作正常,我可以发送另一个将被处理的请求。正在运行的版本:没有 JPA 注释,也没有 Number 类中的其他字段 - id 和 number。当我删除数字字段时,响应是 "1 count of IllegalAnnotationExceptions" ,所以我立即删除了 id 并且它正在工作。有没有办法让他们留在课堂上并完成这项工作?

标签: java spring soap spring-data-jpa jaxb


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 2016-05-05
    相关资源
    最近更新 更多