gpt4 book ai didi

java - 什么可能导致 "JAXBElement Does not have a no-arg default constructor"?

转载 作者:数据小太阳 更新时间:2023-10-29 02:35:43 25 4
gpt4 key购买 nike

我正在生成一个要放入商业软件产品中的 jar。该 jar 符合商业软件的 api 并依赖于第二个 jar,其中包含(除其他外)一组从 XSD 生成的 POJO。但是,当我将它放入时尝试实例化 JAXBContext 时它失败了。

我得到:

"1 counts of IllegalAnnotationExceptions"
javax.xml.bind.JAXBElement does not have a no-arg default constructor.
this problem is related to the following location:
at javax.xml.bind.JAXBElement
at mypackage.MyClass
...
JAXBContext.newInstance("mypackage");
...

我的 XSD(为简洁起见进行了总结)如下所示:

<xsd:schema ... >
<xsd:element name="MyClass" type="myType" />
<xsd:complexType name="myType">
...
</xsd:complextType>

</xsd:schema>

我认为问题可能是“xsd:element”级别的类不存在,但即使我设置 XJC 来创建 MyClass 并且我已经验证 MyClass 有一个公共(public)的 no-参数构造函数。

因此,我查看了其他几个 SO 问题(事实上,还有整个互联网)。他们都没有给我足够的理解来解决这个问题,这可能只是对我的一种不良反射(reflect)。任何人都可以透露一些见解吗?或者给我替代测试来解决这个问题?

最佳答案

最终此问题是由已修复的错误引起的。我正在加载的系统使用库 JAXB-2.0,我认为我使用的是最新版本 (JAXB-2.2.5)。由于插件框架设计不佳,我的版本被 2.0 jar 抢占了。

为了克服这个问题,我要么升级商业软件的库,要么尝试使用类加载器

感谢所有帮助我找到这个的人。

关于java - 什么可能导致 "JAXBElement Does not have a no-arg default constructor"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19642792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com