首页 > 解决方案 > 无法从某些 wsdl 生成 java 客户端代码

问题描述

我正在尝试使用这个特定的 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>

但在插件执行期间出现异常:

[错误] 无法在项目测试中执行目标 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没有任何问题。

标签: javaweb-servicessocketswsdl2javawsdl2code

解决方案


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

SOAP 代码生成

使用 SOAP UI 为 WSDL 生成客户端 JAVA 代码

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

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

然后通过查看 SSL 日志将了解您在尝试调用此服务时遇到的问题。


推荐阅读