当前位置:首页 > 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 头或安全配置:

java 如何调用 wsdl

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

注意事项

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

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

标签: javawsdl
分享给朋友:

相关文章

如何编译java

如何编译java

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证是否安装成功。若未安装,需从Oracl…

如何搭建java环境

如何搭建java环境

下载JDK 访问Oracle官网或OpenJDK官网下载适合操作系统的JDK安装包。推荐选择长期支持版本(如JDK 17或JDK 21)。 安装JDK 运行下载的安装程序,按照向导完成安装。注意…

java程序如何打包

java程序如何打包

打包Java程序的方法 使用JAR打包 Java程序可以通过JAR(Java Archive)格式打包,这是一种常见的压缩格式,适用于包含多个类文件和资源的项目。以下是使用JAR打包的步骤: 确保项…

react如何与java配合

react如何与java配合

React 与 Java 配合的常见方式 React 作为前端框架,通常与 Java 后端通过 RESTful API 或 GraphQL 进行交互。以下是几种常见的配合方式: RESTful AP…

java实现php

java实现php

Java 实现 PHP 功能的方法 在 Java 中实现 PHP 的功能通常涉及以下几个方面:字符串处理、Web 开发、数据库操作等。以下是几种常见需求的实现方法。 字符串处理 PHP 中的字符串处…

如何查看java版本

如何查看java版本

查看Java版本的命令行方法 在终端或命令提示符中运行以下命令,可以快速查看已安装的Java版本: java -version 输出示例: java version "17.0.1" 20…