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

标签 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>

当我为阶段生成资源或生成源运行项目时。我收到此错误 Addendum is a non-static inner class, JAXB can't handle those.

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

最佳答案

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

关于maven - 从复杂类生成 xsd 时,Jaxb2 maven 插件出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49986738/

相关文章:

java - 使用32位操作系统进行Java开发

java - SQL 错误 : 17059, SQLState : 99999:org. hibernate.util.JDBCExceptionReporter-[错误]:无法转换为内部表示

java - 在我的 Maven 项目中,我应该为 JAXB RI 使用哪些 Artifact ?

java - 属性的 JAXB 多重映射

java - 为什么maven依赖中的版本号有时会被跳过?

jakarta-ee - java.lang.ClassNotFoundException : javax. servlet.jsp.el.ImplicitObjectELResolver$ImplicitObjects

java - 如何调整 JAXB 生成 Java 模型以获得我想要的 Java 代码?

java - jaxb 将随机字符串绑定(bind)到 xs :boolean 'true'

java - 如何使用 JAXB 解码自定义 xml 命名空间?

java - 使用 JAXB 将 XML 解码为对象