浅谈WebService的调用<转>
0.前言
前段时间,公司和电信有个合作,产品对接电信的某个平台,使用了WebService接口的调用,实现了业务受理以及单点登录。终于使用到了WebService,楼主还是比较兴奋的,目前功能已经上线,下面进行使用总结。WebService涉及到内容还是比较多的,涉及到发布和调用,有不少知识点,本文只是最简单的调用。
1.WebService简介
WebService是基于soap协议(简单对象访问协议全写为Simple Object Access Protocol)的,所有的webService请求、应答都是建立在soap协议的基础上的,而soap传输数据的载体是xml。WSDL(Web Services Description Language)是WebService的描述语言,它定义了Web Service做什么,怎么做和查询的信息。在验证一个WebService是否好用的时候,我们通常会选则在浏览器中输入对应的WSDL地址(比如天气预报)。如果显示出一个xml文件,这是好用的,反之就是不可用的。
可以这样理解,通过WebService,我们可以把我们的程序发布成wsdl接口。在其它平台,通过WSDL生成当前平台可调用的代理类,通过调用生成的接口和方法,实现应用之间的相互调用。
2.WebService的调用
调用webservice服务的三种途径,Endpoint ,Disco ,WSDL。客户端在调用电信WebService上行发短信时,是通过 wsdl生成本地代理类方式实行的。而在接收状态报告下行时,可以采用的是 Endpoint方式(客户端不需要生成本地代理类,只需要知道Endpoint地址),比如查看某个城市的天气。
传送门:一些常用的WebService
通过wsdl生成代理类:可以使用axis2 的wsdl2java 通过命令行生成代理类 (具体可自行百度)
|
1
|
wsdl2java -p com.generTech.rms.equipment(包名) -d src(目标文件夹位置) -all(生成全部,-client生成客户端,-server生成服务端) -frontend jaxws21 http://192.168.3.80:8080/emp/EmpProvideServiceImp?wsdl(wsdl文件地址) |
或者通过IDE的插件直接生成,比如Intellij IDEA,可以创建WebService项目,自动下载需要的jar包,输入wsdl的url,
就直接生成了代理类。
具体方法:New Project——Java——WebService Client

自动下载的7个jars 需要下载成功后 才可以根据wsdl生成java code 以及代理类的调用

Tools——WebServices——Generate Wsdl From Java Code

建议选中 生成TestCase,可以方便接口测试(调用时需要添加junit的jar)
如果是maven项目,可以使用下面的pom
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
<!--webservice 调用需要的jar --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.0.4</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.8</version> </dependency> <dependency> <groupId>org.apache.axis</groupId> <artifactId>axis</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>org.apache.axis</groupId> <artifactId>axis-jaxrpc</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>commons-discovery</groupId> <artifactId>commons-discovery</artifactId> <version>0.2</version> </dependency> <dependency> <groupId>org.apache.axis</groupId> <artifactId>axis-saaj</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>wsdl4j</groupId> <artifactId>wsdl4j</artifactId> <version>1.4</version> </dependency> <!--webservice 调用需要的jar --> </dependencies> |
测试效果:

3.GIT@OSC地址
WebService Maven Project:http://git.oschina.net/lujianing/WebService_Demo
Pom.xml地址:http://git.oschina.net/lujianing/WebService_Demo/blob/master/pom.xml
EndPoint调用(不生成代理类):点这里
转自http://my.oschina.net/lujianing/blog/224380
浅谈WebService的调用<转>的更多相关文章
- 浅谈WebService的调用
0.前言 前段时间,公司和电信有个合作,产品对接电信的某个平台,使用了WebService接口的调用,实现了业务受理以及单点登录.终于使用到了WebService,楼主还是比较兴奋的,目前功能已经上线 ...
- 浅谈WebService开发三(动态调用WebService)转
在前两讲里,我已经向大家演示了如何使用WebService.同步, 异步调用WebService,而在实际开发过程中,可能会有多个WebService接口供你选择,而在程序执行过程中才决定使用哪一个 ...
- 浅谈WebService SOAP、Restful、HTTP(post/get)请求
http://www.itnose.net/detail/6189456.html 浅谈WebService SOAP.Restful.HTTP(post/get)请求 2015-01-09 19:2 ...
- 浅谈WebService的版本兼容性设计
在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...
- 浅谈WebService开发二(同步与异步调用)转
上文 <http://www.dotnetgeek.cn/xuexiwebservice1.html>已经跟大家说了,如果创建一个webservice和简单的调用,本文将注重webserv ...
- 浅谈WebService之JAX-RS与spring整合
背景:首先谈一下webservice: 1.Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序, 可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发 ...
- 浅谈WebService返回数据效率对比
原文链接 http://www.dotnetgeek.cn/xuexiwebservice1.html 一.什么是WebService: 简单通俗来说,就是企业之间.网站之间通过Internet来访问 ...
- 浅谈WebService开发(一)
一.什么是WebService: 简单通俗来说,就是企业之间.网站之间通过Internet来访问并使用在线服务,一些数据,由于安全性问题,不能提供数据库给其他单位使用,这时候可以使 用WebSer ...
- 浅谈WebService开发(一)转
一.什么是WebService: 简单通俗来说,就是企业之间.网站之间通过Internet来访问并使用在线服务,一些数据,由于安全性问题,不能提供数据库给其他单位使用,这时候可以使 用WebSer ...
随机推荐
- define() vs const 该如何选择?
使用 define(),除非考虑到可读性.类常量.或关注微优化 1.在 PHP 中是使用 define() 函数来定义常量,PHP 5.3.0 以后,PHP 中也能够使用 const 关键字来声明常量 ...
- linux利器expect的使用
1.什么是expect在做系统管理时,我们很多时候需要输入密码,例如:连接 ssh,连接ftp,那么如何能做到不输入密码,我们需要有一个工具,能代替我们实现与终端的交互,它能够代替我们实现与终端的交互 ...
- 【转载】MyEclipse使用指南(精简版)
1.安装 2.注册 3.配置 window ----> preferences (1)配置 JDK java--->Installed JREs --> Add ---> JR ...
- Android开发之5大布局方式详解
Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件从屏幕左上方布局组件. 表格布局(Tabl ...
- iOS - PairProgramming 结对编程
1.PairProgramming 结对编程(Pair-Programming)可能是近年来最为流行的编程方式.所谓结对编程,也就是两个人写一个程序,其中,一个人叫 Driver,另一个人叫 Obse ...
- 转multicast vs broadcast
转自:http://blog.csdn.net/bloghome/article/details/4682984 一.multicast概述: 多媒体应用集成了声音.图形.动画.文本以及视频,这种 ...
- AME_AME审批中子元素的概念和用途(概念)
2014-05-30 Created By BaoXinjian AME: Oracle Approvals Management AME的6个元素的概念和主要作用: Attribue -> ...
- Form_Form Builder的基本语法(概念)
2014-05-21 Created By BaoXinjian
- HDU 2256 Problem of Precision(矩阵高速幂)
题目地址:HDU 2256 思路: (sqrt(2)+sqrt(3))^2*n=(5+2*sqrt(6))^n; 这时要注意到(5+2*sqrt(6))^n总能够表示成an+bn*sqrt(6); a ...
- windows下git bash中文乱码解决办法
一.解决办法1:(直接上图) 1.在git bash下,右键 出现下图,选择options: 2.选择“Text” 3.将“Character set”设置为 UTF-8 转:windows下git ...