Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jaxb2 maven plugin getting error when generating xsd from complex classes

I have a case that i have 35 classes that some of them related with each other inside of them. Such as;

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>

When i run the project for phase generate-resources or generate-sources. I am getting this error Addendum is a non-static inner class, and JAXB can't handle those.

How can i resolve this problem?? How can i generate all classes xsd in a simple xsd Or how can i create xsds' one by one and import to complex one

like image 644
boraer Avatar asked Aug 31 '25 15:08

boraer


1 Answers

I have found the problem. every class need a default constructor

like image 113
boraer Avatar answered Sep 02 '25 22:09

boraer