【问题标题】:Impossible to generate java client code from some wsdl无法从某些 wsdl 生成 java 客户端代码
【发布时间】:2018-12-25 17:45:26
【问题描述】:

我正在尝试使用这个特定的 URL:

<plugin>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
    <version>1.7.9</version>
    <configuration>
        <wsdlFile>https://web.rbsuat.com/ab/webservices/merchant-ws?wsdl</wsdlFile>
    </configuration>
</plugin>

但在插件执行过程中出现异常:

[ERROR] 无法在项目测试中执行目标 org.apache.axis2:axis2-wsdl2code-maven-plugin:1.7.9:wsdl2code (default-cli):解析 WSDL 时出错:连接重置 -> [帮助 1]

当 SSLv3 被禁用时,最有可能是 newset java 的 SSLv3 相关问题,我应该通过删除

来启用它
jdk.tls.disabledAlgorithms=SSLv3

来自JRE_HOME/lib/security/java.security,但是,我做到了,但仍然面临同样的问题

实际上,从浏览器访问 URL https://web.rbsuat.com/ab/webservices/merchant-ws?wsdl 没有任何问题。

【问题讨论】:

  • 我对 Apache Axis 了解不多,但是命令 wsimport "https://web.rbsuat.com/ab/webservices/merchant-ws?wsdl" 在 Java 8 和 Java 10 中没有问题,所以我怀疑 SSL 协议是问题。
  • 在重新启动之前,IDE 似乎没有在 jre 文件夹中获取我的配置更改

标签: java web-services sockets wsdl2java wsdl2code


【解决方案1】:

1 - 要从给定的 WSDL 文件生成 Java 客户端,您可以使用 SoapUI 工具按照以下链接中给出的说明来实现。它基本上向您展示了如何使用不同的代码生成工具(如 Axis 1.X、Axis 2、CXF 2.X 和 .NET 2.0)来生成客户端代码。

SOAP Code Generation

Generating Client JAVA code for WSDL using SOAP UI

2 - 生成 Java 客户端代码后,您可以在 Java 客户端中添加以下参数,然后再调用外部服务以生成 SSL 日志。

System.setProperty("javax.net.debug", "all");

然后通过查看 SSL 日志就会知道您在尝试调用此服务时遇到了什么问题。

【讨论】:

  • 1 的好主意。但对我不起作用;我想让生成成为开发构建周期的一部分,因为第三方 wsdl 可以不时更改。这就是为什么我更需要它作为一个 maven 插件而不是像soap ui这样的外部工具
  • 至于 2. 为整个 maven 执行设置此属性的最佳方法是启用此日志记录到 maven 插件?
【解决方案2】:

在重新启动之前,IDE 没有在 jre 文件夹中获取我的配置更改,这就是原因。我不得不重新启动我的 IDE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    • 2015-09-09
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多