JAX-WS 从几个 wsdl 生成客户端代码

问题描述

我需要从由 2 个不同 wsdl 定义的同一提供者调用 2 个遗留 SOAP Web 服务。 为了实现这一点,我使用了 jaxws-maven-plugin 并使用 wsdl 的两个 url 提供它,如下所示:

<configuration>
    <wsdlUrls>
        <wsdlUrl>https://www.provider.com/webservice1?wsdl</wsdlUrl>
        <wsdlUrl>https://www.provider.com/webservice2?WSDL</wsdlUrl>
    </wsdlUrls>
    <keep>true</keep>
    <packageName>org.client.ws.soap.client.generated</packageName>
</configuration>

不幸的是,webservice1 声明了目标命名空间“https://www.provider.com”,而 webservice2 声明了目标命名空间“www.provider.com/webservice2”

似乎 wsimport 使用最后一个目标命名空间来生成代码。因为当我调用 webservice1 时发生以下错误(并且 webservice2 没有发生错误):

Caused by: javax.xml.bind.JAXBException: {https://www.provider.com}Request is not a valid property on class org.client.ws.soap.client.generated.Action1

如果我在插件配置中切换 wsdl 的位置,则会出现调用 webservice2 而不是 webservice1 的错误,并出现以下错误

Caused by: javax.xml.bind.JAXBException: {www.provider.com}XmlBean 不是类 org.client.ws.soap.client.generated.Action2 上的有效属性

由于我无法修改 wsdl,我该如何进行这项工作?

提前谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)