我有一个案例,我有 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/