首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个类具有相同的XML类型name.Use、@XmlType.name和@XmlType.namespace,以便为它们指定不同的名称

两个类具有相同的XML类型name.Use、@XmlType.name和@XmlType.namespace,以便为它们指定不同的名称
EN

Stack Overflow用户
提问于 2019-05-03 18:57:19
回答 1查看 901关注 0票数 1

我有两个具有相同名称的.xsd格式的类。即使它们中的每一个都在不同的名称空间下:

当我尝试初始化图片时,我得到的结果是:两个类具有相同的JAXBContext类型名称“图片”。使用@XmlType.name和@XmlType.namespace为它们指定不同的名称。信息:在java11上运行,并使用xjc生成类。这在以前是在java 8上工作的。

代码语言:javascript
复制
<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:

代码语言:javascript
复制
 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,并为它们指定了不同的名称。有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

发布于 2019-05-07 16:53:17

问题是jaxb运行时作为其他包的传递依赖项存在于war文件中。解决方案是在gradle文件中排除它,并将所有jaxb依赖项放在tomcat lib文件夹下。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55968419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档