java - 无法从某些 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没有任何问题。
解决方案
1 - 要从给定的 WSDL 文件生成 Java 客户端,您可以使用 SoapUI 工具按照以下链接中给出的说明来实现。它基本上向您展示了如何使用不同的代码生成工具(如 Axis 1.X、Axis 2、CXF 2.X 和 .NET 2.0)来生成客户端代码。
使用 SOAP UI 为 WSDL 生成客户端 JAVA 代码
2 - 生成 Java 客户端代码后,您可以在调用外部服务生成 SSL 日志之前在 Java 客户端中添加以下参数。
System.setProperty("javax.net.debug", "all");
然后通过查看 SSL 日志将了解您在尝试调用此服务时遇到的问题。