java 调用 axis2_java调用WebService服务 axis2实现方式
用到的jar包如下:
代码如下:
import javax.xml.namespace.QName;
import org.apache.axiom.om.OMElement;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
public class StockQuoteClient {
public static void main(String[] args) {
testRPCClient();
}
/**
* 方法一: 应用rpc的方式调用 这种方式就等于远程调用, 即通过url定位告诉远程服务器,告知方法名称,参数等, 调用远程服务,得到结果。 使用
* org.apache.axis2.rpc.client.RPCServiceClient类调用WebService
*
* 【注】:
*
* 如果被调用的WebService方法有返回值 应使用 invokeBlocking 方法 该方法有三个参数
* 第一个参数的类型是QName对象,表示要调用的方法名; 第二个参数表示要调用的WebService方法的参数值,参数类型为Object[];
* 当方法没有参数时,invokeBlocking方法的第二个参数值不能是null,而要使用new Object[]{}。
* 第三个参数表示WebService方法的 返回值类型的Class对象,参数类型为Class[]。
*
*
* 如果被调用的WebService方法没有返回值 应使用 invokeRobust 方法
* 该方法只有两个参数,它们的含义与invokeBlocking方法的前两个参数的含义相同。
*
* 在创建QName对象时,QName类的构造方法的第一个参数表示WSDL文件的命名空间名, 也就是
* 元素的targetNamespace属性值。
*
*/
public static void testRPCClient() {
try {
// axis1 服务端
String url = "http://localhost:8080/StockQuote/services/StockQuoteServiceSOAP11port?wsdl";
// 使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
// 指定调用WebService的URL
EndpointReference targetEPR = new EndpointReference(url);
Options options = serviceClient.getOptions();
// 确定目标服务地址
options.setTo(targetEPR);
// 确定调用方法
options.setAction("urn:sendVideoSubtitle");
System.out.println("--------------------------------");
/**
* 指定要调用的getPrice方法及WSDL文件的命名空间 如果 webservice 服务端由axis2编写 命名空间
* 不一致导致的问题 org.apache.axis2.AxisFault: java.lang.RuntimeException:
* Unexpected subelement arg0
*/
QName qname = new QName("http://webservice.vms.com",
"StockQuoteServiceSOAP11port");
// 指定getPrice方法的参数值
Object[] parameters = new Object[] { "<?xml version=\"1.0\" encoding=\"UTF-8\"?>12313213133213254544646465465465" };
// 指定getPrice方法返回值的数据类型的Class对象
Class[] returnTypes = new Class[] { String.class };
// 调用方法一 传递参数,调用服务,获取服务返回结果集
OMElement element = serviceClient.invokeBlocking(qname, parameters);
// 值得注意的是,返回结果就是一段由OMElement对象封装的xml字符串。
// 我们可以对之灵活应用,下面我取第一个元素值,并打印之。因为调用的方法返回一个结果
String result = element.getFirstElement().getText();
System.out.println(result + "-------------------");
// 调用方法二 getPrice方法并输出该方法的返回值
Object[] response = serviceClient.invokeBlocking(qname, parameters,
returnTypes);
// String r = (String) response[0];
String r = (String) response[0];
System.out.println(r + "-------------------");
} catch (Exception e) {
e.printStackTrace();
}
}
}
java 调用 axis2_java调用WebService服务 axis2实现方式相关推荐
- 在Eclipse中通过axis2调用网络免费webService服务
上上一篇blog讲到了如何用axis2建立webService(sayHello),然后调用的方法. http://www.cnblogs.com/Jason_Chan/archive/2013/04 ...
- java cxf服务端代码_【JAVA】 cxf 生成 webservice 服务端代码
CXF Apache CXF = Celtix + XFire.CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding . ...
- axis2 java.net.url_axis2调用.net写的webservice接口实现,指定参数名
参考文章:https://blog.csdn.net/wangyu2016/article/details/76022928 使用axis2调用调用.net写的webservice接口时出现参数无法传 ...
- Axis2调用WebService服务的3种方式(rpc调用不好用)
第一,RPC方式,不生成客户端代码,引入相应的axis2的jar包(不好用) 注意:暂时没有成功调用,没有参数传递时远程调用成功,当有参数传递时远程调用失败: package com.ming.axi ...
- Java实现的简单的WebService服务发布和Client调用例子
做大作业,要求用到WS,在网上看了看,自己写了一个,很简单的服务发布和Client调用例子. WebService有很多实现的方式,但是原理基本都是一样的,都是基于SOA的三角模型,所以重点在于理解了 ...
- java调用webservice_WebService学习总结(四)——调用第三方提供的webService服务
只为成功找方法,不为失败找借口! 互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气 ...
- axis2 java.net.url_axis,axis2调用.net的webservice
package testClick.src.test;import javax.xml.namespace.QName;import org.apache.axiom.om.OMAbstractFac ...
- java xfire 客户端代码_java调用xfire webService服务客户端代码
java技术调用xfire webService服务客户端代码 import类: import java.net.MalformedURLException; import java.net.URL; ...
- Java调用第三方webService服务
WebService Web service是一个平台独立的.低耦合的.自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些 ...
- java 解析http返回的xml_Java解析调用webservice服务的返回XML串详解
本文由Markdown语法编辑器编辑完成. 1. 需求分析: 已知当在调用某一webservice的服务时,如果调用成功,会接受到该服务的返回XML串.后端在获取了该XML原始串时,需要进行解析,将其 ...
最新文章
- KVM - 调整cpu内存、网卡
- Windows Internals 笔记——错误处理
- java 数组 包含_Java中高效的判断数组中某个元素是否存在详解
- Ribbon-饥饿加载
- java 中怎么加汉字,jquery怎么向body里面增加文字
- golang:正则表达式匹配网页url_网络爬虫:3种网页抓取方法
- HP 380 G5安装CentOS7时找不到P400 raid卡
- MySQL Binlog--binlog_format参数
- 无线AP配服务器,cisco思科无线ap设置步骤
- Outlook关闭时最小化到任务栏的完美解决方法
- linux下zip文件密码破解Fcrackzip
- 群响刘思毅 | 创始人的流量焦虑
- 【听歌】Happy programmer's Day
- JZ2440开发板nand flash出现坏块的解决办法
- 第二讲 单片机C语言之12864液晶显示
- AtCoder Beginner Contest 172 总结
- 聊聊软件开发的SLAP原则
- Visio与Word中的字体对应关系
- MCPcounter估计免疫浸润细胞丰度
- c语言实验设备管理系统设计作业,c语言程序设计实验设备管理系统
热门文章
- R语言实战应用精讲50篇(三十一)-R语言实现决策树(附R语言代码)
- 安卓学习专栏——实现记住密码功能(图文+代码)
- 云课堂智慧职教网页版登录入口_云课堂智慧职教网页版
- navicat for mysql mac中文版_Navicat for MySQL Mac 版常用功能
- 2019年成都房产新政,有这些内容需注意
- 广电为什么禁止投屏_手机投屏到电视机,以前可以投屏,现在不能了,是怎么回事,求解!...
- 斐讯盒子t1 刷Android,斐讯盒子T1/N1刷机流水账
- 网站html页面显示404错误,网站怎样设置404错误页面
- 01_博图默认变量和DB块变量导入昆仑通态触摸屏
- 基于springboot高校社团管理系统