java调用wsdl(jdk自带、axis2)

2024-03-14 08:38
文章标签 java jdk 自带 调用 wsdl axis2

本文主要是介绍java调用wsdl(jdk自带、axis2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Java通过WSDL文件来调用web service的方法介绍。

一、通过axis2远程调用web service(通过反射进行调用执行,效率应该比第二种低些:个人认为

注:该方法要求要能大概读懂XML格式的WSDL文件

package webService.client.axis;import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;/**** webservice客户端:利用axis2* * @author SunJun* */
public class TestAxisClient {/**** 传统阻塞式客户端(新版本)* * @return*/public String invokeRemoteFuc_New() {EndpointReference targetEPR = new EndpointReference("http://localhost:8078/testWebService.asmx?wsdl");// 接口地址Options options = new Options();// 下面的一行代码可要可不要(自己测试的结果)// options.setAction("urn:BeiJingChaoYang");//调用接口方法options.setTo(targetEPR);ServiceClient sender = null;try {sender = new ServiceClient();sender.setOptions(options);OMFactory fac = OMAbstractFactory.getOMFactory();// 设置命名空间,这里的命名空间是和wsdl中的命名空间一样的(从wsdl中获取)OMNamespace omNs = fac.createOMNamespace("http://tempuri.org/", "");// 设置方法名称,这个方法名称(BeiJingChaoYang)和服务里面的方法一致(是需要调用的方法名称)OMElement method = fac.createOMElement("BeiJingChaoYang", omNs);// 设置入参名称,这个参数名称(dataXml)是和服务提供的方法里面的参数名称一致// (例如:要和方法BeiJingChaoYang中dataXml参数名称一致),否则服务方法获取不到该参数值OMElement name = fac.createOMElement("dataXml", omNs);// 设置入参值name.setText("1111");method.addChild(name);OMElement name2 = fac.createOMElement("testParam", omNs);// 设置入参值name2.setText("222");method.addChild(name2);method.build();System.out.println("method:" + method.toString());// print:<getUserById// xmlns="http://service.hsinghsu.com"><id>1</id></getUserById>OMElement response = sender.sendReceive(method); //获取处理结果System.out.println("response:" + response);OMElement elementReturn = response.getFirstElement();System.out.println("cityCode:" + elementReturn.getText());analysisResult(elementReturn.getText());} catch (AxisFault e) {System.out.println("Error");e.printStackTrace();}return null;}public String analysisResult(String data) {String dataXml = data;Document doc = null;try {doc = DocumentHelper.parseText(dataXml); // 将字符串转为XMLElement rootElt = doc.getRootElement(); // 获取根节点Element status = rootElt.element("Status");String status_value = status.getText();if (status_value.equals("1")) {// 失败Element error = rootElt.element("Error");String error_value = error.getText();Attribute error_id = error.attribute("id");String error_id_value = error_id.getValue();Attribute error_code = error.attribute("code");String error_code_value = error_code.getValue();Attribute error_name = error.attribute("name");String error_name_value = error_name.getValue();}} catch (Exception e) {e.printStackTrace();}return null;}}

二、使用wsdl2java把WSDL文件转成本地类,然后像本地类一样使用,即可。

1、首先创建调用ws的web项目,就一个普通的web项目就行;
这里写图片描述
2、通过右击项目-new-other-web Services,如下图
这里写图片描述
3输入wsdl地址
4、点击完成后自动生成服务端代码:

5、调用



这篇关于java调用wsdl(jdk自带、axis2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/807837

相关文章

Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)

《Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)》:本文主要介绍Java导入、导出excel的相关资料,讲解了使用Java和ApachePOI库将数据导出为Excel文件,包括... 目录前言一、引入Apache POI依赖二、用法&步骤2.1 创建Excel的元素2.3 样式和字体2.

Java实现将Markdown转换为纯文本

《Java实现将Markdown转换为纯文本》这篇文章主要为大家详细介绍了两种在Java中实现Markdown转纯文本的主流方法,文中的示例代码讲解详细,大家可以根据需求选择适合的方案... 目录方法一:使用正则表达式(轻量级方案)方法二:使用 Flexmark-Java 库(专业方案)1. 添加依赖(Ma

Spring Boot拦截器Interceptor与过滤器Filter详细教程(示例详解)

《SpringBoot拦截器Interceptor与过滤器Filter详细教程(示例详解)》本文详细介绍了SpringBoot中的拦截器(Interceptor)和过滤器(Filter),包括它们的... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)详细教程1. 概述1

SpringBoot利用dynamic-datasource-spring-boot-starter解决多数据源问题

《SpringBoot利用dynamic-datasource-spring-boot-starter解决多数据源问题》dynamic-datasource-spring-boot-starter是一... 目录概要整体架构构想操作步骤创建数据源切换数据源后续问题小结概要自己闲暇时间想实现一个多租户平台,

Java反转字符串的五种方法总结

《Java反转字符串的五种方法总结》:本文主要介绍五种在Java中反转字符串的方法,包括使用StringBuilder的reverse()方法、字符数组、自定义StringBuilder方法、直接... 目录前言方法一:使用StringBuilder的reverse()方法方法二:使用字符数组方法三:使用自

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Spring Cloud之注册中心Nacos的使用详解

《SpringCloud之注册中心Nacos的使用详解》本文介绍SpringCloudAlibaba中的Nacos组件,对比了Nacos与Eureka的区别,展示了如何在项目中引入SpringClo... 目录Naacos服务注册/服务发现引⼊Spring Cloud Alibaba依赖引入Naco编程s依

java导出pdf文件的详细实现方法

《java导出pdf文件的详细实现方法》:本文主要介绍java导出pdf文件的详细实现方法,包括制作模板、获取中文字体文件、实现后端服务以及前端发起请求并生成下载链接,需要的朋友可以参考下... 目录使用注意点包含内容1、制作pdf模板2、获取pdf导出中文需要的文件3、实现4、前端发起请求并生成下载链接使