当前位置:首页 > 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

运行Java程序的方法 安装Java开发工具包(JDK) 确保系统已安装JDK。可通过命令行输入 java -version 检查是否安装。若未安装,需从Oracle官网或OpenJDK下载并配置环境…

java如何运行

java如何运行

运行Java程序的基本方法 Java程序的运行需要经过编写、编译和执行三个主要阶段。以下是具体步骤: 编写Java源代码 创建一个以.java为后缀的文件,例如HelloWorld.java。文件内…

java如何输出数组

java如何输出数组

输出数组的方法 在Java中,输出数组内容有多种方式,具体取决于数组类型和输出格式需求。以下是几种常见的方法: 使用Arrays.toString()方法 适用于一维数组,直接调用Arrays.to…

java如何导包

java如何导包

导入包的方法 在Java中,导入包(package)可以通过import语句实现,用于引入其他类或包中的功能。以下是几种常见的导包方式: 导入单个类 import java.util.ArrayL…

如何阅读java源码

如何阅读java源码

阅读Java源码的方法 选择合适的源码项目 初学者建议从JDK核心类库(如java.lang、java.util)或知名开源项目(如Spring、Guava)入手。选择文档完善、社区活跃的项目能降低理…

如何升级java

如何升级java

检查当前Java版本 在升级之前,需确认当前安装的Java版本。在终端或命令提示符中运行以下命令: java -version 输出会显示当前Java版本(如1.8.0_301或17.0.2)。…