当前位置:首页 > Java

java如何调用wsdl接口

2026-03-04 07:13:33Java

调用WSDL接口的方法

使用JAX-WS生成客户端代码

通过wsimport工具生成客户端存根代码,该工具是JDK自带的。假设WSDL地址为http://example.com/service?wsdl,执行以下命令:

wsimport -keep -p com.example.client http://example.com/service?wsdl

参数说明:

  • -keep:保留生成的.java源文件
  • -p:指定生成代码的包名

生成后会在指定包路径下创建服务端点和接口类,直接实例化即可调用:

MyService service = new MyService();
MyServicePortType port = service.getMyServicePort();
String result = port.someMethod(param1, param2);

动态代理方式调用

不生成静态代码,运行时动态创建代理:

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

使用Apache CXF框架

添加Maven依赖:

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxws</artifactId>
    <version>3.5.5</version>
</dependency>

代码实现:

JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(MyServicePortType.class);
factory.setAddress("http://example.com/service");
MyServicePortType client = (MyServicePortType) factory.create();
client.someMethod(param);

处理WS-Security等扩展

对于需要安全认证的接口,CXF提供WS-Security支持:

java如何调用wsdl接口

Map<String, Object> props = new HashMap<>();
props.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN);
props.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT);
props.put(WSHandlerConstants.PW_CALLBACK_CLASS, ClientPasswordCallback.class.getName());

JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.getOutInterceptors().add(new WSS4JOutInterceptor(props));

注意事项

  • 生成的客户端代码需与服务端保持版本同步
  • 复杂类型可能需要额外处理数据绑定
  • 生产环境建议添加连接超时设置:
    BindingProvider bp = (BindingProvider)port;
    bp.getRequestContext().put(BindingProviderProperties.CONNECT_TIMEOUT, 10000);
    bp.getRequestContext().put(BindingProviderProperties.REQUEST_TIMEOUT, 30000);

标签: 接口java
分享给朋友:

相关文章

如何运行java

如何运行java

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

java如何打开

java如何打开

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

php 实现接口

php 实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口通…

java如何编程

java如何编程

Java编程基础 Java是一种面向对象的编程语言,广泛应用于企业级开发、移动应用(Android)等领域。以下是Java编程的核心步骤和示例。 环境搭建 安装JDK 从Oracle官网下载适合…

如何编译java文件

如何编译java文件

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

如何编写java

如何编写java

编写Java程序的基本步骤 安装Java开发工具包(JDK),确保系统环境变量配置正确。可以从Oracle官网下载最新版本的JDK并进行安装。 选择一个合适的集成开发环境(IDE),如Eclipse…