Что делает параметр `extra classes` из`Java2WSDL`?

Кто-нибудь знает что extra classes параметр из Java2WSDL инструмент значит?

Справочник по Java2DSDL

Я надеюсь ответить на этот вопрос, но безуспешно.

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>
Другие вопросы по тегам