1

在我的 spring boot 应用程序中,我必须为两个 web 服务 [AA 和 B webservices] 创建客户端代码。我正在使用 jaxws-maven-plugin,它正在生成代码。

我面前的挑战是,在我的网络项目中,我有一个生成的文件夹,所有生成的代码都放在那个文件夹中。现在,如果我为 A 服务执行 jaxws-maven-plugin,它会创建代码和 wsdl 位置点以从生成的代码(即 A.wsdl)中正确定位。之后,如果我为 B 服务执行 jaxws-maven-plugin,它还会创建正确的生成代码,但在这种情况下,第一个 web 服务生成的客户端代码的 wsdl 位置被修改并指向 B.wsdl

由于这种方法,我的 A.wsdl 客户端代码停止工作,因为它指向不正确的实现

请建议。

4

1 回答 1

4

您可以在一次 jaxws-maven-plugin 执行中为多个 WSDL 文件生成 Java 代码并指定路径前缀。

<build>
    ...
    <plugins>
        <plugin>
            <groupId>org.jvnet.jax-ws-commons</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <version>2.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>wsimport</goal>
                    </goals>
                    <configuration>
                        <keep>true</keep>
                        <wsdlLocation>http://mywebservices/*</wsdlLocation>
                        <wsdlDirectory>src/mywsdls</wsdlDirectory>
                        <wsdlFiles>
                            <wsdlFile>A.wsdl</wsdlFile>
                            <!-- produces wsdlLocation = http://mywebservices/A.wsdl -->
                            <wsdlFile>B.wsdl</wsdlFile>
                            <!-- produces wsdlLocation = http://mywebservices/B.wsdl -->
                        </wsdlFiles>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        ...
    </plugins>
    ...
<build>

从 JAX-WS Commons 站点查看这个示例。

于 2015-10-19T14:20:03.177 回答