【发布时间】:2011-03-21 18:11:17
【问题描述】:
我已经在这个地方堆了几天了。任何帮助将不胜感激。
这是我的故事: 我有一个 JPA 实体类(ExtOffer),现在我用 JAXB 注释对其进行注释,以便通过 JAXB 进行编组/解组。我还创建了一个包装类(ExtOffers),它基本上是 ExtOffer 的集合。 当我调用 JAXBContext.newInstance(ExtOffers.class) 时,我得到一个 IllegalAnnotationsException:JAXB 注释被放置在一个不是 JAXB 属性的方法上。
我在谷歌上搜索,一些帖子说这是由于在错误的地方注释 @XmlElement。 但是我的类有@XmlAccessorType(XmlAccessType.NONE) 注释,只有getter 方法用@Xmlelement 注释。
下面是我的 ExtOffer 类和 ExtOffers 类:
//ExtOffer:
@Entity
@Table (name = "extoffer")
@XmlType(name = "ExtOfferType")
@XmlAccessorType(XmlAccessType.NONE)
public class ExtOffer {
public ExtOffer() {
}
@Id
@Column(name = "OfferID", nullable = false, unique = true, length = 32)
protected String offerId;
@Column(name = "HasMoreScreenShot", nullable = false, unique = false, length = 1)
private String hasMoreScreenShot;
public void setOfferId(String offerId) {
this.offerId = offerId;
}
@XmlElement(name="OfferID", required = true)
public String getOfferId() {
return offerId;
}
public void setHasMoreScreenShot(String hasMoreScreenShot) {
this.hasMoreScreenShot= hasMoreScreenShot;
}
@XmlElement(name = "HasMoreScreenShot")
public String GetHasMoreScreenShot() {
return hasMoreScreenShot;
}
}
//ExtOffers 包装器
@XmlRootElement(name="extoffers")
@XmlAccessorType(XmlAccessType.NONE)
public class ExtOfferWrapper {
private List<ExtOffer> extoffers;
public ExtOfferWrapper() {
}
@XmlElement(name="extoffer")
public List<ExtOffer> getExtoffers() {
return extoffers;
}
public void setExtoffers(List<ExtOffer> extoffers) {
this.extoffers = extoffers;
}
}
JAXB annotation is placed on a method that is not a JAXB property
this problem is related to the following location:
at @javax.xml.bind.annotation.XmlElement(nillable=false, name=HasMoreScreenShot, required=false, defaultValue=, type=class javax.xml.bind.annotation.XmlElement$DEFAULT, namespace=##default)
at com.symbio.fuhu.appstore.jpa.entity.ExtOffer
at public java.util.List com.symbio.fuhu.appstore.jaxb.mapping.wrapper.ExtOfferWrapper.getExtoffers()
at com.symbio.fuhu.appstore.jaxb.mapping.wrapper.ExtOfferWrapper
【问题讨论】:
标签: jpa annotations jaxb