Генерация кода из WSDL с использованием каталога XML - PullRequest
3 голосов
/ 29 января 2010

Существует ли какой-либо инструмент для генерации кода Java из WSDL с использованием каталогов XML? Проблема в том, что у меня есть файлы wsdl, которые импортируют схемы XML, которые также импортируют другие схемы, и схемы не доступны по адресу schemaLocation. Вот почему генерация кода не удается. Если бы инструмент мог использовать каталог XML, эта проблема была бы решена без изменения каждого расположения схемы в каждом WSDL и схемах.

Я пробовал подключаемые модули Eclipse и Netbeans, но оба не удалось. В Eclipse и Netbeans я настроил альтернативные расположения схемы с помощью каталога XML, чтобы они могли безошибочно проверять файлы WSDL. Однако, когда они генерируют код из wsdl, они терпят неудачу.

Ответы [ 4 ]

1 голос
/ 01 ноября 2012

Только для справки: я создал небольшой пример проекта на Github, который использует схему XML. это может помочь: https://github.com/fmarot/xml-mapping-tutorial Не забудьте проверить его вики тоже, чтобы иметь обзор: https://github.com/fmarot/xml-mapping-tutorial/wiki

1 голос
/ 29 января 2010

Только что обнаружил, что утилита JBoss wsconsume может использовать каталоги XML для разрешения сущностей и работает нормально.

http://community.jboss.org/wiki/JBossWS-wsconsume

0 голосов
/ 10 марта 2010

Тем временем я нашел другое решение, которое наилучшим образом соответствует моим потребностям. Существует плагин maven под названием jaxws-maven-plugin, который также может обрабатывать XMLCatalogs при генерации источников из wsdl.

https://jax -ws-commons.dev.java.net / JAXWS-Maven-плагин /

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>1.10</version>
<executions>
    <execution>
        <id>id1</id>
        <phase>generate-sources</phase>
        <goals>
            <goal>wsimport</goal>
        </goals>
        <configuration>
            <verbose>true</verbose>
            <keep>true</keep>
            <catalog>${basedir}/src/main/resources/catalog.xml</catalog>
            <packageName>org.example</packageName>
            <wsdlDirectory>
                ${basedir}/src/main/resources/contracts/wsdl/ExampleService/1
            </wsdlDirectory>
            <wsdlFiles>
                <wsdlFile>ExampleService_1_0.wsdl</wsdlFile>
            </wsdlFiles>
            <xadditionalHeaders>false</xadditionalHeaders>
        </configuration>
    </execution>
</executions>
<configuration>
</configuration>
<dependencies>
    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-tools</artifactId>
        <version>2.1.7</version>
    </dependency>
</dependencies>

0 голосов
/ 10 марта 2010

WSDL должен быть действителен без использования каталогов XML или клиентов, которые считают, что WSDL не сможет его использовать.

Конечно, если вы никогда не будете использовать клиентов, не работающих на платформе JBoss, все будет в порядке.

...