用到的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实现方式相关推荐

  1. 在Eclipse中通过axis2调用网络免费webService服务

    上上一篇blog讲到了如何用axis2建立webService(sayHello),然后调用的方法. http://www.cnblogs.com/Jason_Chan/archive/2013/04 ...

  2. java cxf服务端代码_【JAVA】 cxf 生成 webservice 服务端代码

    CXF Apache CXF = Celtix + XFire.CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding . ...

  3. axis2 java.net.url_axis2调用.net写的webservice接口实现,指定参数名

    参考文章:https://blog.csdn.net/wangyu2016/article/details/76022928 使用axis2调用调用.net写的webservice接口时出现参数无法传 ...

  4. Axis2调用WebService服务的3种方式(rpc调用不好用)

    第一,RPC方式,不生成客户端代码,引入相应的axis2的jar包(不好用) 注意:暂时没有成功调用,没有参数传递时远程调用成功,当有参数传递时远程调用失败: package com.ming.axi ...

  5. Java实现的简单的WebService服务发布和Client调用例子

    做大作业,要求用到WS,在网上看了看,自己写了一个,很简单的服务发布和Client调用例子. WebService有很多实现的方式,但是原理基本都是一样的,都是基于SOA的三角模型,所以重点在于理解了 ...

  6. java调用webservice_WebService学习总结(四)——调用第三方提供的webService服务

    只为成功找方法,不为失败找借口! 互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气 ...

  7. axis2 java.net.url_axis,axis2调用.net的webservice

    package testClick.src.test;import javax.xml.namespace.QName;import org.apache.axiom.om.OMAbstractFac ...

  8. java xfire 客户端代码_java调用xfire webService服务客户端代码

    java技术调用xfire webService服务客户端代码 import类: import java.net.MalformedURLException; import java.net.URL; ...

  9. Java调用第三方webService服务

    WebService Web service是一个平台独立的.低耦合的.自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些 ...

  10. java 解析http返回的xml_Java解析调用webservice服务的返回XML串详解

    本文由Markdown语法编辑器编辑完成. 1. 需求分析: 已知当在调用某一webservice的服务时,如果调用成功,会接受到该服务的返回XML串.后端在获取了该XML原始串时,需要进行解析,将其 ...

最新文章

  1. KVM - 调整cpu内存、网卡
  2. Windows Internals 笔记——错误处理
  3. java 数组 包含_Java中高效的判断数组中某个元素是否存在详解
  4. Ribbon-饥饿加载
  5. java 中怎么加汉字,jquery怎么向body里面增加文字
  6. golang:正则表达式匹配网页url_网络爬虫:3种网页抓取方法
  7. HP 380 G5安装CentOS7时找不到P400 raid卡
  8. MySQL Binlog--binlog_format参数
  9. 无线AP配服务器,cisco思科无线ap设置步骤
  10. Outlook关闭时最小化到任务栏的完美解决方法
  11. linux下zip文件密码破解Fcrackzip
  12. 群响刘思毅 | 创始人的流量焦虑
  13. 【听歌】Happy programmer's Day
  14. JZ2440开发板nand flash出现坏块的解决办法
  15. 第二讲 单片机C语言之12864液晶显示
  16. AtCoder Beginner Contest 172 总结
  17. 聊聊软件开发的SLAP原则
  18. Visio与Word中的字体对应关系
  19. MCPcounter估计免疫浸润细胞丰度
  20. c语言实验设备管理系统设计作业,c语言程序设计实验设备管理系统

热门文章

  1. R语言实战应用精讲50篇(三十一)-R语言实现决策树(附R语言代码)
  2. 安卓学习专栏——实现记住密码功能(图文+代码)
  3. 云课堂智慧职教网页版登录入口_云课堂智慧职教网页版
  4. navicat for mysql mac中文版_Navicat for MySQL Mac 版常用功能
  5. 2019年成都房产新政,有这些内容需注意
  6. 广电为什么禁止投屏_手机投屏到电视机,以前可以投屏,现在不能了,是怎么回事,求解!...
  7. 斐讯盒子t1 刷Android,斐讯盒子T1/N1刷机流水账
  8. 网站html页面显示404错误,网站怎样设置404错误页面
  9. 01_博图默认变量和DB块变量导入昆仑通态触摸屏
  10. 基于springboot高校社团管理系统