获取 JAXB 异常,如“两个类具有相同的 XML 类型名称...”
获取 JAXB 异常,如“两个类具有相同的 XML 类型名称...”,
以下是异常详细信息:
线程“main” com.sun.xml.internal.bind.v2.runtime.IllegalAnnotations中的异常异常:1 个 IllegalAnnotationExceptions 中的异常 两个类具有相同的 XML 类型名称“city”。使用 @XmlType.name 和 @XmlType.namespace 为其分配不同的名称。此问题与以下位置有关:在 com.model.City at public com.model.City com.model.address.getCurrentCity() at com.model.address 此问题与以下位置有关:在 com.common.City at public com.common.City com.model.Address.getPreviousCity() at com.model.Address
at com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException$Builder.check(Unknown Source) at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(Unknown Source) at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.(未知来源) at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(Unknown Source) at com.sun.xml.internal.bind.v2.ContextFactory.createContext(Unknown Source) at com.sun.xml.internal.bind.v2.ContextFactory.createContext(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.delegatingMethodAccessorImpl.invoke(Unknown Source) atjava.lang.reflect.Method.invoke(Unknown Source) at javax.xml.bind.ContextFinder.newInstance(Unknown Source) at javax.xml.bind.ContextFinder.find(Unknown Source) at javax.xml.bind.JAXBContext.newInstance(Unknown Source) at javax.xml.bind.JAXBContext.newInstance(Unknown Source) at com.PojoToxSD.main(PojoToxSD.java:17)
我举了这样的例子:
package **com.model**; ---->this package contains 'Address' class and 'City' class
public class Address {
private String areaName;
private City currentCity;
private com.common.City previousCity;
}
package com.model;
public class City {
private String cityName;
}
“com.common”包中的另一个城市类。
package **com.common**;
public class City {
private String pinCode;
}
我们需要创建XSD,并且需要使用项目中的现有代码进行编组和解组(如上面的示例代码),代码没有任何注释,例如“@XmlRootElement/ @XmlType”,我们无法更改源代码。
我想知道是否有任何解决方案来解决上述问题或任何其他方法来创建XSD和封送/取消编组(如MOXy.等)?
如果我能从任何人那里得到解决方案,那就太好了......可以提前感谢。
谢谢
萨蒂亚。