微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。