答案 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>