我有两个具有相同名称的.xsd格式的类。即使它们中的每一个都在不同的名称空间下:
当我尝试初始化图片时,我得到的结果是:两个类具有相同的JAXBContext类型名称“图片”。使用@XmlType.name和@XmlType.namespace为它们指定不同的名称。信息:在java11上运行,并使用xjc生成类。这在以前是在java 8上工作的。
<xs:schema targetNamespace="http://test.com/bla/blabla/blablabla/sd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="picture">
<xs:schema targetNamespace="http://test.com/bla/blabla/blablabla/hd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="picture">ANd生成的两个类如下所示:
@XmlRootElement(name = "picutre")公共类图片{}
我初始化JAXBContext:
private static JAXBContext initializeJaxbContext() {
JAXBContext jaxbctx = JAXBContext.newInstance(com.test.bla.blabla.blablabla.hd.Picture.class,com.test.bla.blabla.blablabla.sd.Picture.class);为什么会出现这个错误?两个类具有相同的XML类型name.Use、@XmlType.name和@XmlType.namespace,并为它们指定了不同的名称。有人能帮上忙吗?
发布于 2019-05-07 16:53:17
问题是jaxb运行时作为其他包的传递依赖项存在于war文件中。解决方案是在gradle文件中排除它,并将所有jaxb依赖项放在tomcat lib文件夹下。
https://stackoverflow.com/questions/55968419
复制相似问题