【发布时间】:2011-02-10 22:41:26
【问题描述】:
我有一个带有 JAXB 注释类和抽象超类的包。我想在 Web 服务接口中使用这个超类,所以我 可以将任何子类作为参数传递。当我这样做时,会引发异常:
javax.xml.ws.WebServiceException: javax.xml.bind.UnmarshalException
- with linked exception:
[javax.xml.bind.UnmarshalException: Unable to create an instance of xxx.yyy.ZZZ
- with linked exception:
[java.lang.InstantiationException]]
可以手动编组/解组并将参数作为字符串传递,但我想避免它。有什么想法吗?
【问题讨论】:
-
对JAXB了解不多,但一定有原因,为什么不能创建实例。 xxx.yyy.ZZZ 有没有公开的无参数构造函数?
-
xxx.yyy.ZZZ是已编组的实际对象的抽象超类的名称。不好的是,在解组时,jaxb 会尝试实例化这个超类,而不是被传递的对象的实际类。 -
xxx.yyy.ZZZ 在试图解组调用的系统/类路径中吗?
-
肯定是这样,否则我猜会抛出不同的异常
-
发布您的一些代码可能会有所帮助......这可能是注释语法的一些问题。否则,也许尝试使用接口而不是抽象超类?
标签: java web-services jaxb superclass