首页 > 解决方案 > JAXB2:带有两个包的 JaxBContext

问题描述

我的课程有两个包:

src/main/java/cat/catsalut/hes/mpi/hazelcast/loader/domain/serveiterritorial/
├── catalegs
│   ├── ErrorType.java
│   ├── FieldType.java
│   ├── MappedCatalogType.java
│   ├── ObjectFactory.java
│   ├── OwnerType.java
│   ├── ResultSetType.java
│   ├── ResultType.java
│   ├── SearchRequestType.java
│   └── TargetType.java
└── oid
    ├── ErrorType.java
    ├── FieldType.java
    ├── ObjectFactory.java
    ├── ResultSetType.java
    ├── ResultType.java
    └── SearchRequestType.java

我正在创建我的JaxBContext

JAXBContext jaxbContext = JAXBContext.newInstance(
    String.join(
        ":",
        "cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.catalegs",
        "cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.oid"
    )
);

当我开始我的服务时,我收到了这样的消息:

Two classes have the same XML type name "FieldType". Use @XmlType.name and @XmlType.namespace to assign different names to them.
    this problem is related to the following location:
        at cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.catalegs.FieldType
        at protected java.util.List cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.catalegs.ResultType$Fields.field
        at cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.catalegs.ResultType$Fields
        at protected cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.catalegs.ResultType$Fields cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.catalegs.ResultType.fields
        at cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.catalegs.ResultType
        at public cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.catalegs.ResultType cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.catalegs.ObjectFactory.createResultType()
        at cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.catalegs.ObjectFactory
    this problem is related to the following location:
        at cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.oid.FieldType
        at protected java.util.List cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.oid.ResultType$Fields.field
        at cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.oid.ResultType$Fields
        at protected cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.oid.ResultType$Fields cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.oid.ResultType.fields
        at cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.oid.ResultType
        at public cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.oid.ResultType cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.oid.ObjectFactory.createResultType()
        at cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial.oid.ObjectFactory

是的,FieldType两个包下都有类。

字段类型类:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "FieldType", propOrder = {
    "name",
    "value"
})
public class FieldType {

    @XmlElement(required = true)
    protected String name;
    @XmlElement(required = true)
    protected String value;

    //...
}

有任何想法吗?

标签: javajaxbmaven-jaxb2-plugin

解决方案


推荐阅读