一、 通过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. VS2013 连接 MySQL

    1.安装必须的工具: mysql-connector-net-6.8.3 mysql-installer-community-5.6.16.0.msi mysql-for-visualstudio-1 ...

  2. windows2003 iis6.0站点打不开,找不到服务器或 DNS 错误【转】

    最近服务器经常出现打不开网站的现象,有时出现在上午,有时出现在中午,几乎天天都会出现一次,出现问题时,无论是回收程序池还是重启IIS或者关闭其它一些可能有影响的服务,都不能解决问题.网站打不开时,有如 ...

  3. php -- 文件操作类(文件或文件夹的:创建、删除、复制、移动)

    <? /** * 操纵文件类 * * 例子: * FileUtil::createDir('a/1/2/3'); 测试建立文件夹 建一个a/1/2/3文件夹 * FileUtil::create ...

  4. Elixir语言

    Elixir是一个基于Erlang VM的函数式元编程语言(类似Ruby),通过动态语言的灵活的语法和宏能够利用Erlang建立一个并发 分布 失败冗余的高质量代码

  5. Mac 安装Jupyter notebook

    python:mac下自带Python 2.7.10 1.先升级了pip安装工具:sudo python -m pip install --upgrade --force pip 2.安装setupt ...

  6. (转)有关thread线程

    Python 标准库提供了 thread 和 threading 两个模块来对多线程进行支持.其中, thread 模块以低级.原始的方式来处理和控制线程,而 threading 模块通过对 thre ...

  7. JavaScript------创建节点

    代码: <script type="text/javascript"> var i = 0; function add(){ var inputNode = docum ...

  8. 苹果发布【新开发语言】Swift

    Swift is a multi-tenant, highly scalable and durable object storage system that was designed to stor ...

  9. 第十五篇:使用 FP-growth 算法高效挖掘海量数据中的频繁项集

    前言 对于如何发现一个数据集中的频繁项集,前文讲解的经典 Apriori 算法能够做到. 然而,对于每个潜在的频繁项,它都要检索一遍数据集,这是比较低效的.在实际的大数据应用中,这么做就更不好了. 本 ...

  10. ORA-00845 MEMORY_TARGET not supported on this system解决办法

    ORA-00845: MEMORY_TARGET not supported on this system报错解决 Oracle 11g数据库修改pfile参数后启动数据库报错ora-00845 SQ ...