CXF wsdl2java не чете правилно схемата

Използвам по-долу плъгина wsdl2java, конфигуриран да генерира Java класове с помощта на WSDL.

<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>
                        <sourceRoot>${basedir}/src/main/java</sourceRoot>
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>src/main/resources/XXXXService.wsdl</wsdl>
                                <validate>none</validate>
                                <extraargs>
                                    <extraarg>-server</extraarg>
                                    <extraarg>-impl</extraarg>
                                    <extraarg>-verbose</extraarg>
                                    <extraarg>-p</extraarg>
                                    <extraarg>http://XXX/YY=XXX</extraarg>
                                    <extraarg>-autoNameResolution</extraarg>
                                </extraargs>

                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

Сега имам схема по-долу, включена в моя WSDL.

<xsd:include schemaLocation="myschema.xsd" xmlns="tns"></xsd:include>

Когато моята дефиниция на елемент е в моя WSDL, както по-долу, тя генерира клас за myElement, което е добре:

<xsd:element name="myElement">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="a" type="xsd:string"
                    minOccurs="1">
                </xsd:element>
                <xsd:element name="b" type="xsd:string"
                    minOccurs="1">
                </xsd:element>                  
            </xsd:sequence>
        </xsd:complexType>

But when my element definition in WSDL refers to a ComplexType definition in schema. Then the element class aaa doesn't get generated only aaaType class gets generated.

<xsd:element name="aaa"
        type="tns:aaaType">
</xsd:element>

Има ли начин да посоча wsdl2java за генериране на двата класа aaa и aaaType и препратка към aaaType вътре в aaa?


person user620339    schedule 08.10.2014    source източник


Отговори (1)


Можете да проверите xmlns:tns и targetNamespace както на WSDL, така и на схемата.

<xsd:element name="aaa"... - може да се дефинира в самата схема.

Можете да опитате да прегледате WSDL и да проверите дали е правилен, тъй като проблемът изглежда е свързан с включването на схема.

person Bijgupt    schedule 14.10.2014