一、 通过wsimport生成本地代理调用WebService

  1、推荐的访问服务方式

  WebService已纳入w3c规范,其他的平台都支持该规范 :J2EE\Php\.NET都支持wsimport 方式,即对远程的WebService生成本地代理,再通过本地代理来访问WebService。客户端通过wsimport的方式生成java语言本地代理,并把远程的服务解析成本地的类和接口。

  A、服务访问要求

  Jdk的版本要在Jdk 1.6.21及以上。

  B、 wsimport的使用

  wsimport命令的位置在JDK安装路径的Bin目录下,wsimport常用语法如下图,下图中的wsimport路径为我自己电脑的JDK路径

  

  

  

  2、具体案例和Java代码实现

  步骤一、

  确定系统Jdk环境与Eclipse Jdk环境一致,版本在1.6.021以上

  步骤二、

  知道服务端的WSDL路径(WSDL后面有详细介绍),如本次调用查询手机归属地服务的具体路径如下:

  http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?WSDL

步骤三、

  使用JDK1.6以上版本的wsimport命令获得服务端的class文件,生成本地代理

  示例命令如下,其中-s D:\test为指定class文件的存储路径

    

  步骤四、

  在指定的路径下找到服务端的class文件(步骤3路径为D:\test),默认会生成指定的包名cn.com.webxml,并将该包导入新建项目中。

  

  步骤五、

  编写Java代码获取相应的服务数据,具体代码实现如下:

  

  返回结果如下:

  

二、 创建并发布自己的WebService

  1、编写WebService的服务端并发布

  如果要编写WebService的服务端并发布,需要编写业务类,该类通过WebService对外提供服务,要做以下工作

A、声明:@webservice

  B、发布:调用EndPoint方法

  下面为一个创建并发布服务的案例以及Java代码实现

  步骤一、

  编写业务类,并在业务类的类名之上添加@webservice注解,如下示例为编写一个手机操作系统信息类,用以提供不同手机操作系统对应的发展历史,所属公司以及别名。首先编写手机的Bean,为其配置三个属性和添加getter和setter方法。

  

  步骤二、

  编写该业务类的发布方法,指定发布的地址和具体的业务实现类,注意浏览服务具体信息时,地址后面需添加“?WSDL”代码如下,运行即可发布服务。

  步骤三、

  访问服务的具体说明路径,上例中生成的路径为:

  http://127.0.0.1:8888/webservice/phoneservice?WSDL

  访问该路径,看到生成对应的服务名以及方法则服务发布成功,如下图

  

  2、调用自己发布的服务

  如果要调用自己编写的上例中的WebService,可以使用上文介绍的通过wsimport生成本地代理的方式来调用,通过wsimport的方式生成java语言本地代理,并把远程的服务解析成本地的类和接口,之后导包,导包如下。

  

  之后编写测试类调用自己的服务,代码如下:

  

  输出结果如下:

  

创建发布Webservice以及wsimport工具的更多相关文章

  1. Apache CXF使用Jetty发布WebService

    一.概述 Apache CXF提供了用于方便地构建和开发WebService的可靠基础架构.它允许创建高性能和可扩展的服务,可以部署在Tomcat和基于Spring的轻量级容器中,也可以部署在更高级的 ...

  2. 真正的轻量级WebService框架——使用JAX-WS(JWS)发布WebService

    WebService历来都很受重视,特别是Java阵营,WebService框架和技术层出不穷.知名的XFile(新的如CXF).Axis1.Axis2等. 而Sun公司也不甘落后,从早期的JAX-R ...

  3. JAX-WS(JWS)发布WebService

    WebService历来都很受重视,特别是Java阵营,WebService框架和技术层出不穷.知名的XFile(新的如CXF).Axis1.Axis2等. 而Sun公司也不甘落后,从早期的JAX-R ...

  4. 真正的轻量级WebService框架——使用JAX-WS(JWS)发布WebService(转载)

    WebService历来都很受重视,特别是Java阵营,WebService框架和技术层出不穷.知名的XFile(新的如CXF).Axis1.Axis2等. 而Sun公司也不甘落后,从早期的JAX-R ...

  5. CXF2.7整合spring发布webservice

    ---------==========--服务端发布webservice-=============-------- 1.需要的jar包: 2.包结构 3.代码 1.实体类 package cn.ql ...

  6. Spring+CXF+Maven发布Webservice

    使用CXF发布WebService简单又快速,还可以与Spring集成,当Web容器启动时一起发布WebService服务.本例是简单的客户端给服务端发送订单信息,服务端返回订单转为json的字符串. ...

  7. 用JAX-WS在Tomcat中发布WebService

    JDK中已经内置了Webservice发布,不过要用Tomcat等Web服务器发布WebService,还需要用第三方Webservice框架.Axis2和CXF是目前最流行的Webservice框架 ...

  8. WebService学习之旅(一)使用JAX-WS发布WebService

    JAX-WS全称Java™ API for XML Web Services,是随着JDK1.6及其后续版本发布的方便Java程序员开发WebService应用的一组API,通常简称为JWS,目前版本 ...

  9. So easy Webservice 7.CXF 发布WebService

    (一)使用ServerFactoryBean 方式实现发布WS服务 1.新建项目,添加cxf jar包到项目中 2.编写服务实现类 /** * CXF WebService * 不用注解 * @aut ...

随机推荐

  1. ubuntu16.04 安装opencv3.2.0以及opencv_contrib-3.2.0

    1.需要的包:sudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-dev pkg-config l ...

  2. 第二百七十三节,Tornado框架-文件上传

    Tornado框架-文件上传 第一.普通表单上传文件 self.request.files["fafafa"] 获取上传文件信息,参数["上传文件框的name名称&quo ...

  3. 以上过程为实现equals的标准过程

    以下为定义equal(加上这个定义,返回ture或false) public boolean equals(Object o){ student s=(student)o; if (s.name.eq ...

  4. [转]Shell脚本中发送html邮件的方法

    <span "="">作为运维人员,免不了要编写一些监控脚本,并将监控结果及时的发送出来.那么通过邮件发送是比较常用的一种通知方式了.通常的,如果需要发送的内 ...

  5. 设置两个WdatePicker的开始时间小于结束时间,结束时间大于开始时间

    contract_start_date_id为开始时间ID contract_end_date_id为结束时间ID $("#contract_start_date_id").bin ...

  6. VC++ 轻松实现“闪屏” SplashWnd

    我们平时使用的好多软件在运行启动时都会有一个“闪屏”画面显示,一般用于标识软件的一些信息,如软件版本名称.公司等,通过查找资料发现,其实实现起来很简单,一个类就能搞定! SplashWnd.h  C+ ...

  7. hdu 4739(状态压缩)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4739 思路:状态压缩. #include<iostream> #include<cs ...

  8. Ubuntu 16.04 LTS 安装libvips出现”Package vips was not found in the pkg-config search path”

    使用libvips来操作图像,libvips的部署参考一个Node.js工程:https://github.com/lovell/sharp 在MAC下安装很顺利,到Linux环境下(Ubuntu 1 ...

  9. 苹果使用蓝汛CDN网络分发ios8

        2014年9月18日凌晨,苹果公司公布了全新的ios8系统正式版.不出所料的引发了空前高涨的"果粉"下载热潮.引爆整个苹果界.     ios8被业内称为"自Ap ...

  10. FAIL : SSHException: Incompatible ssh peer (no acceptable kex algorithm)问题解决及更新paromiko失败问题解决

    转自:http://blog.csdn.net/qy924565830/article/details/52164256 http://blog.csdn.net/coder_xia/article/ ...