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生成当前平台可调用的代理类,通过调用生成的接口和方法,实现应用之间的相互调用。

参考:WebService使用的一些总结

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的调用<转>的更多相关文章

  1. 浅谈WebService的调用

    0.前言 前段时间,公司和电信有个合作,产品对接电信的某个平台,使用了WebService接口的调用,实现了业务受理以及单点登录.终于使用到了WebService,楼主还是比较兴奋的,目前功能已经上线 ...

  2. 浅谈WebService开发三(动态调用WebService)转

    在前两讲里,我已经向大家演示了如何使用WebService.同步, 异步调用WebService,而在实际开发过程中,可能会有多个WebService接口供你选择,而在程序执行过程中才决定使用哪一个 ...

  3. 浅谈WebService SOAP、Restful、HTTP(post/get)请求

    http://www.itnose.net/detail/6189456.html 浅谈WebService SOAP.Restful.HTTP(post/get)请求 2015-01-09 19:2 ...

  4. 浅谈WebService的版本兼容性设计

    在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...

  5. 浅谈WebService开发二(同步与异步调用)转

    上文 <http://www.dotnetgeek.cn/xuexiwebservice1.html>已经跟大家说了,如果创建一个webservice和简单的调用,本文将注重webserv ...

  6. 浅谈WebService之JAX-RS与spring整合

    背景:首先谈一下webservice: 1.Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序, 可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发 ...

  7. 浅谈WebService返回数据效率对比

    原文链接 http://www.dotnetgeek.cn/xuexiwebservice1.html 一.什么是WebService: 简单通俗来说,就是企业之间.网站之间通过Internet来访问 ...

  8. 浅谈WebService开发(一)

    一.什么是WebService: 简单通俗来说,就是企业之间.网站之间通过Internet来访问并使用在线服务,一些数据,由于安全性问题,不能提供数据库给其他单位使用,这时候可以使   用WebSer ...

  9. 浅谈WebService开发(一)转

    一.什么是WebService: 简单通俗来说,就是企业之间.网站之间通过Internet来访问并使用在线服务,一些数据,由于安全性问题,不能提供数据库给其他单位使用,这时候可以使   用WebSer ...

随机推荐

  1. C#编写的 8种初级+高级排序方法(转)

    摘自:http://blog.csdn.net/mevin/article/details/6714520 程序代码: view plaincopy to clipboard using System ...

  2. 兼容火狐,ie8的 js urlencode和urldecode

    function UrlEncode(str)//url编码{ var i,temp,p,q; var result=""; for(i=0;i<str.length;i++ ...

  3. java获取某个范围内的一个随机数

    一.取模操作 public static void main(String[] args){ for (int i = 1; i <= 20; i++){ int j = i % 11; Sys ...

  4. java配置使用手册

    进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置: 1.下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是 ...

  5. C# 采用钩子捕获键盘和鼠标事件-验证是否处于无人操作状态

    原文地址:https://www.cnblogs.com/gc2013/p/4036414.html 全局抽象类定义 using System; using System.Collections.Ge ...

  6. 存储映射I/O

    一个进程拥有独立并且连续虚拟地址空间,在32位体系结构中进程的地址空间是4G.不过,内核在管理进程的地址空间时是以内存区域为单位.内存区域是进程整个地址空间中一个独立的内存范围,它在内核中使用vm_a ...

  7. 西邮Linux兴趣小组纳新笔试试题

    下面是西邮Linux小组今年纳新的笔试试题 1. 下面这个程序的输出结果是什么? int main() { int a = (1, 2); printf(“a = %d\n”, a); return ...

  8. POJ 3254 简单状压DP

    没什么可说的,入门级状压DP.直接撸掉 #include <iostream> #include <cstring> #include <cstdlib> #inc ...

  9. GO1.6语言学习笔记2-安装配置及代码组织

    一.关于GO开发环境的安装和配置        在linux环境中安装编译好的go安装包,参考官方指南的步骤一步步走下来就可以了.需要注意的是以下几个环境变量的配置:        GOROOT - ...

  10. spring 中 AOP 功能

    1 PointCut 由 ClassFilter 和 MethodMatcher 构成,通过 ClassFilter 定位到类上,通过 MethodMatcher 定位到方法. 2 Spring 支持 ...