我使用Jaxb来解组xml请求。我不明白为什么Jaxb尝试创建一个抽象类的实例(什么是不可能的)。它有点像jaxb unable to create an instance of abstract class,但我没有看到任何解决方法来修复它。
我收到此错误消息:
javax.xml.bind.UnmarshalException:无法创建的实例 fr.project.name.OrderDetailsType - 链接异常:[java.lang.InstantiationException]
在从xsd文件获取的生成源上,我有一个抽象类OrderDetailsType:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "OrderDetailsType", propOrder = {
"orderType",
"orderID",
"orderAttribute"
})
@XmlSeeAlso({
UnsecuredReqOrderDetailsType.class,
NoPubKeyDigestsReqOrderDetailsType.class,
UnsignedReqOrderDetailsType.class
})
public abstract class OrderDetailsType {
}
NoPubKeyDigestsReqOrderDetailsType是这样的:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "NoPubKeyDigestsReqOrderDetailsType")
public class NoPubKeyDigestsReqOrderDetailsType
extends OrderDetailsType {
}
我的xsd看起来正确,具有指定的类型:
<element name="OrderDetails" type="ebics:NoPubKeyDigestsReqOrderDetailsType">
<annotation>
<documentation xml:lang="de">Auftragsdetails.</documentation>
</annotation>
</element>
我认为Jaxb应该创建一个NoPubKeyDigestsReqOrderDetailsType而不是OrderDetailsType,我真的不明白为什么他这样做?