Jaxb CXF中的默认双类型元素为null

Jaxb CXF中的默认双类型元素为null,jaxb,cxf,wsdl2java,Jaxb,Cxf,Wsdl2java,我正在使用CXF wsdl2java,在我的模式中有以下complexType: <complexType name="ABCType"> <sequence> <element name="xxx" type="int" maxOccurs="1" minOccurs="1"> </element> <element name="yyy" type="do

我正在使用CXF wsdl2java,在我的模式中有以下complexType:

 <complexType name="ABCType">
    <sequence>
        <element name="xxx" type="int"   maxOccurs="1"
            minOccurs="1">
        </element>
        <element name="yyy" type="double" maxOccurs="1"
            minOccurs="0">
        </element>
</complexType>
当我为上面的complexType生成Java类时。我看到yyy属性是双重类型的。当yyy元素未作为请求的一部分出现时,如何要求CXF将yyy值默认为null而不是0.0


谢谢

不确定上述代码是如何生成的。如果字段为requiredmin=1、max=1,则cxf codegen生成基本类型;如果其optionalmin=0和max=1,则生成包装器类型。在java中,引用类型被初始化为null。因此yyy将为空

无论如何,如果您需要在原语类型中添加一个默认值,那么可以为下面的xsd添加一个假设值

<element name="xxx" type="int"   maxOccurs="1" minOccurs="1" default="4" >
您可以将默认生成器扩展添加到cxf codegen插件,如下所示

                 <plugin>
                        <groupId>org.apache.cxf</groupId>
                        <artifactId>cxf-codegen-plugin</artifactId>
                        <version>3.0.1</version>
                        <executions>
                            <execution>
                                <id>generate-sources</id>
                                <phase>generate-sources</phase>
                                <configuration>
                                    <wsdlOptions>
                                        <wsdlOption>
                                            <wsdl>${basedir}/src/main/resources/mywsdl.wsdl</wsdl>
                                            <extraargs>
                                                <extraarg>-impl</extraarg>
                                                <extraarg>-verbose</extraarg>
                                                <extraarg>-xjc-Xdv</extraarg>
                                            </extraargs>
                                        </wsdlOption>
                                    </wsdlOptions>
                                </configuration>
                                <goals>
                                    <goal>wsdl2java</goal>
                                </goals>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>org.apache.cxf.xjcplugins</groupId>
                                <artifactId>cxf-xjc-dv</artifactId>
                                <version>${cxf.version}</version>
                            </dependency>
                        </dependencies>
                    </plugin>

您能显示生成的Java类吗?Ian我已经添加了上面的类,它实际上不是实际的类,但生成的代码是相同的。
                 <plugin>
                        <groupId>org.apache.cxf</groupId>
                        <artifactId>cxf-codegen-plugin</artifactId>
                        <version>3.0.1</version>
                        <executions>
                            <execution>
                                <id>generate-sources</id>
                                <phase>generate-sources</phase>
                                <configuration>
                                    <wsdlOptions>
                                        <wsdlOption>
                                            <wsdl>${basedir}/src/main/resources/mywsdl.wsdl</wsdl>
                                            <extraargs>
                                                <extraarg>-impl</extraarg>
                                                <extraarg>-verbose</extraarg>
                                                <extraarg>-xjc-Xdv</extraarg>
                                            </extraargs>
                                        </wsdlOption>
                                    </wsdlOptions>
                                </configuration>
                                <goals>
                                    <goal>wsdl2java</goal>
                                </goals>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>org.apache.cxf.xjcplugins</groupId>
                                <artifactId>cxf-xjc-dv</artifactId>
                                <version>${cxf.version}</version>
                            </dependency>
                        </dependencies>
                    </plugin>