从复杂类生成xsd时,Jaxb2 maven插件出错

时间:2018-04-23 17:25:23

标签: maven jaxb jaxb2 jaxb2-maven-plugin

我有一个案例,我有35个课程,其中一些课程内部相互关联。如;

Addendum.java


    @XmlType(name="addendum",namespace= GenericNameSpaceConstants.POLICY_NAMESPACE_URI)
@XmlAccessorType(XmlAccessType.FIELD)
public class Addendum implements Serializable {

    @XmlElement(name="changeNumber",nillable=false,required=true)
    private Long changeNumber;

    @XmlElement(name="changeTypeDesc",nillable=false,required=true)
    private String changeTypeDesc;

    @XmlElement(name="changeTypeId",nillable=false,required=true)
    private Integer changeTypeId;

}

Policy.java
    @XmlRootElement(name="policy",namespace=GenericNameSpaceConstants.POLICY_NAMESPACE_URI)
@XmlType(name="policy",namespace= GenericNameSpaceConstants.POLICY_NAMESPACE_URI)
@XmlAccessorType(XmlAccessType.FIELD)
public class Policy {

 @XmlElement(name="addendum",required=true,nillable=false)
    private Addendum addendum;
}

My jaxb schemage config in pom file like that

    <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>jaxb2-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                <createJavaDocAnnotations>false</createJavaDocAnnotations>
                <sources>       
                <source>
                ${project.basedir}\src\main\java\com\aegon\common\service\bean\
                </source>

                </sources>
                <verbose>true</verbose>
                <outputDirectory>${basedir}/src/main/resources/schemas</outputDirectory>
                <transformSchemas>
                <transformSchema>               
                            <toPrefix>pol</toPrefix>
                            <toFile>policy_model_v2.xsd</toFile>
                </transformSchema>
                </transformSchemas>
                <generateEpisode>true</generateEpisode>
                </configuration>
            <executions>
            <execution>
            <phase>generate-resources</phase>
            <goals>

            <goal>schemagen</goal>
            </goals>
            </execution>
            </executions>   
            </plugin>

当我为阶段生成资源或生成源运行项目时。我收到此错误附录是一个非静态内部类,JAXB无法处理这些错误。

我该如何解决这个问题?如何在一个简单的xsd中生成所有类xsd或者我如何逐个创建xsds并导入到复杂的一个

1 个答案:

答案 0 :(得分:3)

我发现了这个问题。每个类都需要一个默认的构造函数