генерировать файл wsdl и клиент веб-сервиса на основе файла wsdl в maven - PullRequest
5 голосов
/ 16 мая 2011

Я работаю над проектом, в котором у меня есть модуль веб-сервиса и веб-модуль. Я хочу, чтобы клиент генерировался на основе файла wsdl веб-сервиса, и я хочу, чтобы файл wsdl генерировался при сборке модуля веб-сервиса.

Я нашел для этого подключаемые модули maven (axis2-java2wsdl-maven-plugin и axis2-wsdl2code-maven-plugin), но axis2-java2wsdl-maven-plugin продолжает генерировать неверный xsd для файла wsdl (я думаю, как минимум, недействительно).

Веб-служба возвращает некоторые перечисления из своих методов или возвращает объекты, содержащие перечисления. При создании файла wsdl я получаю ссылку на «xs: Enum», которой нет в данном пространстве имен для двух типов enum. У меня их несколько, но только два из них получают эту базу = "xs: Enum".

<xs:complexType name="LoginType">
    <xs:complexContent>
        <xs:extension base="xs:Enum">
            <xs:sequence/>
        </xs:extension>
    </xs:complexContent>
</xs:complexType>

Итак, при сборке клиентского модуля с помощью axis2-wsdl2code-maven-plugin я получаю следующую ошибку:

error: src-resolve: type 'Enum@http://www.w3.org/2001/XMLSchema' not found.

Я не понимаю, почему он продолжает генерировать недействительный XSD!

1 Ответ

4 голосов
/ 16 мая 2011

Это была известная проблема в течение очень долгого времени. Это одна из (многих) причин, по которой я начал использовать Apache CXF вместо Axis. Он даже имеет аналогичный плагин Maven .

...