首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
Web开发
> 详细
axis2 webservice 调用的三种方式
时间:
2015-10-19 07:05:36
阅读:
185
评论:
0
收藏:
0
[点我收藏+]
标签:
[java]
view plain
copy
package testClick.src.test;
import javax.xml.namespace.QName;
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.apache.axis2.rpc.client.RPCServiceClient;
import org.junit.Test;
import testClick.src.testclick.HelloWebService;
import testClick.src.testclick.HelloWebServicePortType;
public
class TestWebservice {
@Test
public
void Test(){
//testClient();
//testRPC();
testOMElement();
}
/**
* 第一种
* MyEclipse 生成客户端方式
*/
public
void testClient(){
HelloWebService service =
new HelloWebService();
HelloWebServicePortType portType = service.getHelloWebServiceHttpSoap11Endpoint();
String result = portType.sayHello(
"jack");
System.out.println(result);
}
/**
* 第二种
* 使用axis2 RPC调用webservice 需要导入相应的jar包
*/
public
void testRPC(){
try{
RPCServiceClient client =
new RPCServiceClient();
Options options = client.getOptions();
String url =
"http://localhost:8080/axis2/services/HelloWebService?wsdl";
EndpointReference end =
new EndpointReference(url);
options.setTo(end);
Object[] obj =
new Object[]{
"tom"};
Class<?>[] classes =
new Class[] { String.
class };
QName qname =
new QName(
"http://testClick",
"sayHello");
String result = (String) client.invokeBlocking(qname, obj,classes)[
0];
System.out.println(result);
}
catch(AxisFault e){
e.printStackTrace();
}
}
/**
* 第三种
* @throws AxisFault
*/
public
void testOMElement(){
try{
ServiceClient sc =
new ServiceClient();
Options opts =
new Options();
String url =
"http://localhost:8080/axis2/services/HelloWebService?wsdl";
EndpointReference end =
new EndpointReference(url);
opts.setTo(end);
opts.setAction(
"sayHello");
sc.setOptions(opts);
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace(
"http://testClick",
"");
OMElement method = fac.createOMElement(
"sayHello",omNs);
OMElement value = fac.createOMElement(
"name",omNs);
value.setText(
"admin");
method.addChild(value);
OMElement res = sc.sendReceive(method);
res.getFirstElement().getText();
System.out.println(res.getFirstElement().getText());
}
catch(AxisFault e){
e.printStackTrace();
}
}
}
axis2 webservice 调用的三种方式
标签:
原文地址:http://www.cnblogs.com/adamas21/p/4890801.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
36.VUE — 认识 Webpack 和 安装
2021-07-28
【PHP】上传图片翻转问题
2021-07-28
php对数字进行万。亿的转化
2021-07-28
五个 .NET 性能小贴士
2021-07-28
Three.js中显示坐标轴、平面、球体、四方体
2021-07-28
.net 5+ 知新:【1】 .Net 5 基本概念和开发环境搭建
2021-07-27
1.html,css
2021-07-27
基于Docker搭建 Php-fpm + Nginx 环境
2021-07-27
nginx + http + svn
2021-07-27
kubernets kube-proxy的代理 iptables和ipvs
2021-07-26
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!