`Java2WSDL`的`extra classes`参数有什么作用?

时间:2012-12-04 18:01:44

标签: wsdl axis2 java2wsdl

有谁知道extra classes工具中的Java2WSDL参数是什么意思?

Java2DSDL Reference

我希望回答this question,但没有成功。

1 个答案:

答案 0 :(得分:1)

它用于在WSDL定义中包含那些父类显示为返回类型或参数的类型。考虑一个非常简单的例子:

public class DemoService {
    public Animal pickRandomAnimal() {
        return new Dog(); // or any other animal
    }
}

..其中Animal是一个界面。在WSDL生成时,Axis2将无法自动跟踪您可能希望返回的所有可能的Animal实现。没有extraClasses,你会得到这样的东西:

    <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://demo.com/xsd">
        <xs:complexType name="Animal">
            <xs:sequence>
                <xs:element minOccurs="0" name="animalName" nillable="true" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:schema>

..如果你添加extraClasses =“com.demo.Dog”,你将涵盖WSDL架构部分所需的所有类型:

    <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://demo.com/xsd">
        <xs:complexType name="Animal">
            <xs:sequence>
                <xs:element minOccurs="0" name="animalName" nillable="true" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="Dog">
            <xs:sequence>
                <xs:element minOccurs="0" name="animalName" nillable="true" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:schema>