3

有没有使用 XML 目录从 WSDL 生成 Java 代码的工具?问题是我有导入 XML 模式的 wsdl 文件,这些文件也导入其他模式,并且模式在 schemaLocation url 上不可用。这就是代码生成失败的原因。如果一个工具能够使用 XML 目录,则无需修改每个 WSDL 和模式中的每个 schemaLocation 即可解决此问题。

我尝试过 Eclipse 和 Netbeans 插件,但都失败了。在 Eclipse 和 Netbeans 中,我使用 XML 目录配置了替代模式位置,因此它们可以验证 WSDL 文件而不会出错。但是,当它们从 wsdl 生成代码时,它们会失败。

4

4 回答 4

1

仅作记录:我在 Github 上建立了一个使用 XML 模式的小型示例项目。它可能有任何帮助:https ://github.com/fmarot/xml-mapping-tutorial 一定要检查它的 wiki 以获得一个概述:https ://github.com/fmarot/xml-mapping-教程/维基

于 2012-10-31T23:11:31.863 回答
1

刚刚发现 JBoss 的 wsconsume 工具能够使用 XML 目录进行实体解析,并且工作正常。

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

于 2010-01-29T17:54:56.043 回答
0

WSDL 必须在不使用 XML 目录的情况下有效,否则使用该 WSDL 的客户端将无法使用它。

当然,如果您永远不会使用任何不在 JBoss 平台上运行的客户端,那么您会没事的。

于 2010-03-09T23:06:40.770 回答
0

同时,我找到了另一个最适合我需求的解决方案。有一个名为 jaxws-maven-plugin 的 maven 插件,它还能够在从 wsdl 生成源时处理 XMLCatalogs。

https://jax-ws-commons.dev.java.net/jaxws-maven-plugin/

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

于 2010-03-10T12:28:22.437 回答