Что делает параметр `extra classes` из`Java2WSDL`?
Кто-нибудь знает что extra classes
параметр из Java2WSDL
инструмент значит?
Я надеюсь ответить на этот вопрос, но безуспешно.
1 ответ
Решение
Он используется для включения в определение WSDL тех типов, чьи родители отображаются как возвращаемые типы или параметры. Рассмотрим очень простой пример:
public class DemoService {
public Animal pickRandomAnimal() {
return new Dog(); // or any other animal
}
}
.. где Animal это интерфейс. Во время генерации WSDL Axis2 не сможет автоматически отследить все возможные реализации Animal, которые вы ожидаете получить. Без дополнительных классов вы получите что-то вроде этого:
<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>