我有一个使用默认值的WSDL文件,我想生成ObjectFactory类,这些类使用CXF使用这些默认值创建方法。例如,我有一个这样定义的对象

    <xsd:complexType name="Smoker">
            <xsd:sequence>
                    <xsd:element default="0" minOccurs="0" name="numCigarettesPerDay" nillable="false" type="xsd:integer"/>
                    <xsd:element default="0" minOccurs="0" name="numYearsSmoking" nillable="false" type="xsd:integer"/>
            </xsd:sequence>
    </xsd:complexType>


我想要一个这样的方法

    public Smoker createSmoker() {
            Smoker smoker = new Smoker();
            smoker.setNumCigarettesPerDay(0);
            smoker.setNumYearsSmoking(0);
            return smoker;
    }


代替这个

    public Smoker createSmoker() {
            return new Smoker();
    }

最佳答案

CXF XJC默认值插件提供了XJC插件,该插件更新了生成的bean,以返回在架构中定义的实例中未设置字段的默认值。

在这些链接中,您可以找到有关所需做的更多信息:


http://cxf.apache.org/cxf-xjc-dv.html
http://java.net/projects/jaxb2-commons/pages/Default-Value


希望这可以帮助。

09-27 23:11