当前位置:首页 > Java

java 如何调用 wsdl

2026-02-05 00:53:56Java

调用 WSDL 的步骤

在 Java 中调用 WSDL(Web Services Description Language)通常涉及生成客户端代码并与 Web 服务交互。以下是具体方法:

使用 wsimport 工具生成客户端代码

wsimport 是 JDK 自带的工具,用于根据 WSDL 文件生成客户端代码。通过命令行运行以下命令:

wsimport -keep -verbose http://example.com/service?wsdl
  • -keep 保留生成的源文件。
  • -verbose 显示详细日志。 生成的代码包括服务接口、数据绑定类等,可直接用于调用服务。

通过 JAX-WS 动态调用

无需生成客户端代码,直接通过 JAX-WS API 动态调用 Web 服务:

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;

URL wsdlUrl = new URL("http://example.com/service?wsdl");
QName serviceName = new QName("http://example.com/", "ServiceName");
Service service = Service.create(wsdlUrl, serviceName);
MyService port = service.getPort(MyService.class);
String result = port.serviceMethod("param");

使用 Apache CXF 或 Axis2

第三方库如 Apache CXF 或 Axis2 提供更灵活的功能:

  • Apache CXF:
    JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
    factory.setServiceClass(MyService.class);
    factory.setAddress("http://example.com/service");
    MyService client = (MyService) factory.create();
    String result = client.serviceMethod("param");
  • Axis2: 通过 wsdl2java 生成代码后,使用 Stub 类调用服务。

处理 SOAP 请求和响应

调用时可能需处理 SOAP 头或安全配置:

BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "username");
bp.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password");

注意事项

  • 确保 WSDL 可访问且格式正确。
  • 检查网络连接和防火墙设置。
  • 对于复杂服务,可能需要自定义数据类型映射或拦截器。

以上方法适用于大多数基于 SOAP 的 Web 服务调用场景。根据项目需求选择合适的方式,生成客户端代码或动态调用均可实现功能。

java 如何调用 wsdl

标签: javawsdl
分享给朋友:

相关文章

如何查看java版本

如何查看java版本

查看 Java 版本的方法 通过命令行工具 打开终端(Windows 为命令提示符或 PowerShell,macOS/Linux 为 Terminal),输入以下命令并回车: java -v…

java如何创建文件

java如何创建文件

使用 File 类创建文件 通过 File 类的 createNewFile() 方法创建文件。此方法返回布尔值,表示文件是否成功创建。 import java.io.File; import j…

java如何输出

java如何输出

输出到控制台 使用 System.out.println() 方法输出内容到控制台,适用于调试或简单信息展示。 示例代码: System.out.println("Hello, World!")…

java如何学习

java如何学习

学习Java的有效方法 理解基础概念 Java是一门面向对象的编程语言,掌握基础概念如变量、数据类型、运算符、控制语句(if-else、循环)是必要的。面向对象的核心概念包括类、对象、继承、多态和封装…

java如何自学

java如何自学

确定学习目标和路径 自学Java需要明确目标,例如开发Web应用、Android应用或后端服务。根据目标选择学习重点,如Java基础、Spring框架或Android开发。制定阶段性计划,从基础语法到…

如何编写java程序

如何编写java程序

安装开发环境 下载并安装JDK(Java Development Kit),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH正确设置。 选…