首页 > > > Web_Service开发指南_2.3.1.pdf

Web_Service开发指南_2.3.1.pdf

Web_Service开发指南_2.3.1.pdf

上传者: 虚幻梦想家 2011-03-22 评分1 评论0 下载43 收藏10 阅读量87 暂无简介 简介 举报

简介:本文档为《Web_Service开发指南_2.3.1pdf》,可适用于手机软件领域,主题内容包含WebService开发指南官方网址:http:wwwhlmzorgQQ群:1第1页共页WebWebWebWebServiceServiceServ符等。

Web Service 开发指南 官方网址:http://www.hlmz.org QQ群:3961326 1 第1页 共 165页 WebWebWeb Web ServiceServiceService Service 开发指南 VVV V 2.32.32.3 2.3 作 者 ProdigyWitProdigyWitProdigyWit ProdigyWit (QQ:3562720) AlongAlongAlong Along (QQ:36224205) 版权说明版权说明版权说明 版权说明 本文档版权归原作者所有。 在免费的前提下,可在网络媒体中自由传播。 如果需要部分或者全文引用,请注明出处。 官方网址:http://www.hlmz.org 官方 QQ群:3961326 文档版本更新说明文档版本更新说明文档版本更新说明 文档版本更新说明 本文档参考并引用了以下著作本文档参考并引用了以下著作本文档参考并引用了以下著作 本文档参考并引用了以下著作 版本号 发布时间 说明 V2.3 2009-03-06 加入 2.6、2.7节——Client.NoSOAPAction 处理和服务端 带头信息进行响应 V2.2 2009-02-16 加入 3.6节——SOAP头验证和通过WSDL规范进行服务 端代码生成,Axis读取头信息 V2.1 2008-12-16 加入 XFire的使用WSDL生成客户端。 V2.0 2008-08-01 加入 XFire和 CXF使用,做为《Web Service 开发指南》 发布。 V1.0 2008-07-15 做为《AXIS开发指南》发布。 著作名 著作日期 作者 Axis Webservice教程 未知 未知 Web Service 开发指南 官方网址:http://www.hlmz.org QQ群:3961326 2 第2页 共 165页 目录目录目录 目录 WEBWEBWEB WEB SERVICESERVICESERVICE SERVICE 开发指南... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . 1 版权说明.............................................................................................................................................1 文档版本更新说明.............................................................................................................................1 本文档参考并引用了以下著作.........................................................................................................1 目录.....................................................................................................................................................2 1.WEBSERVICE1.WEBSERVICE1.WEBSERVICE 1.WEBSERVICE 简介... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . 4 1.1 WEBSERVICE介绍.........................................................................................................................4 1.2 WEBSERVICE的开源实现.............................................................................................................4 2.AXIS2.AXIS2.AXIS 2.AXIS 篇篇篇 篇 ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . 4 2.1AXIS使用......................................................................................................................................4 2.1 .1AXIS的介绍 ........................................................................................................................... 4 2.1.2 AXIS的下载 ........................................................................................................................... 5 2.1.3 AXIS的安装 ........................................................................................................................... 5 2.1.4 开发自己的WebService ........................................................................................................ 7 2.1.4.1 即时发布——JWS(Java Web Service ).........................................................................................7 2.1.4.2 定制发布——WSDD.....................................................................................................................9 2.1.4.3 取消发布一个WebService.........................................................................................................12 2.2.WSDD高级特性......................................................................................................................12 2.2.1 WSDD的高级特性 ............................................................................................................ 12 2.2.2 高级特性Handler ............................................................................................................. 13 2.2.4 高级特性 Chain ................................................................................................................ 16 2.2.5 传递复杂对象 ................................................................................................................... 21 2.2.5.1 List、Map、数组和自定义对象................................................................................................21 2.2.5.2带内部类的自定义对象..............................................................................................................37 2.2.5.3 RMI方式远程调用.....................................................................................................................55 2.2.6 抛出异常 ........................................................................................................................... 58 2.2.7 传递文件 ........................................................................................................................... 65 2.3.AXIS的常用的命令和调试工具的使用.................................................................................69 2.3.1 AXIS的常用命令: ........................................................................................................... 69 2.3.2 调试工具的使用 ............................................................................................................... 70 2.4.AXIS通过WSDL生成服务端代码.........................................................................................71 2.5 AXIS1.4 读取头信息...............................................................................................................72 2.6 .NET 访问 AXIS的出现 CLIENT.NOSOAPACTION的解决方案...................................................75 2.7 AXIS 服务端返回 SOAP HEADER给客户端..............................................................................75 3.3.3. 3. XFIE篇... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . 78 3.1 XFIRE的简介............................................................................................................................78 3.2 简单的应用..............................................................................................................................79 3.3 传递复杂对象..........................................................................................................................83 3.3.1 List、Map、数组和自定义对象 .................................................................................... 83 Web Service 开发指南 官方网址:http://www.hlmz.org QQ群:3961326 3 第3页 共 165页 3.3.1.1 在对象里包含的 List,Map,数组..........................................................................................83 3.3.1.2 传递Map.....................................................................................................................................94 3.3.2 异常处理 ....................................................................................................................... 101 3.3.3 Handler处理 .................................................................................................................. 106 3.3.4 文件上传处理 ............................................................................................................... 114 3.4 XFIRE与 SPRING集成............................................................................................................122 3.5 使用 WSDL 生成客户端........................................................................................................127 3.6.SOAP 头进行验证................................................................................................................131 4.CXF4.CXF4.CXF 4.CXF 篇篇篇 篇 ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . 135 4.1 CXF简介..............................................................................................................................135 4.1.1 CXF的由来 ................................................................................................................... 135 4.1.2 CXF的功能 ................................................................................................................... 135 4.2 CXF开发..............................................................................................................................136 4.2.1 开发环境 ....................................................................................................................... 136 4.2.2 简单的 CXF应用 ......................................................................................................... 136 4.2.3 CXF对请求的拦截处理 ............................................................................................... 140 4.2.4 CXF和 Spring集成开发 ............................................................................................... 147 4.2.4.1 List、Map、数组和自定义对象............................................................................................148 555 5 .后话... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . 165 Web Service 开发指南 官方网址:http://www.hlmz.org QQ群:3961326 4 第4页 共 165页 1.WebService1.WebService1.WebService 1.WebService 简介 1.11.11.1 1.1 WebServiceWebServiceWebService WebService 介绍介绍介绍 介绍 WebService 让一个程序可以透明地调用互联网的程序,不用管具体的实现细节。只要 WebService公开了服务接口,远程客户端就可以调用服务。WebService是基于http 协议的 组件服务,WebService 是分散式应用程序的发展趋势。 1.21.21.2 1.2 WebServiceWebServiceWebService WebService 的开源实现的开源实现的开源实现 的开源实现 WebService 更多是一种标准,而不是一种具体的技术。不同的平台,不同的语言大都 提供 WebService 的开发实现。在JAVA领域,WebService的框架很多,例如:Axis1&2、XFire、 CXF……。其中一个成熟实现是AXIS。AXIS应用比较广泛,而且资料相对也比较多。 2.AXIS2.AXIS2.AXIS 2.AXIS 篇篇篇 篇 2.1AXIS2.1AXIS2.1AXIS 2.1AXIS 使用使用使用 使用 2.12.12.1 2.1 .1AXIS.1AXIS.1AXIS .1AXIS 的介绍 Axis(AAA A pache eXXX X tensible III I nteraction SSS S ystem)是一款开源的WebService运行引擎,它是 SOAP协议的一个实现,其本身来源于 Apache的另一个项目 Apache SOAP。Axis分为 1.x 系列和 2系列,两个系列体系结构和使用上有较大的区别,相对而言,Axis1.x 更加稳定, 文档也比较齐全,因此本文内容以 Axis 1.x系列最新版本 1.4为基础。 2.1.22.1.22.1.2 2.1.2 AXISAXISAXIS AXIS 的下载 登陆http://www.apache.org/dyn/closer.cgi/ws/axis/1_4 站点,Axis 的版本是1.4, 本文的例子都是基于该版本完成的。下载axis-bin-1_4.zip 文件,解压改文件,文件结构 如下: Docs:存放Axis 的说明文档。 Web Service 开发指南 官方网址:http://www.hlmz.org QQ群:3961326 5 第5页 共 165页 Lib:存放Axis 的二进制发布包。 Samples:存放利用Axis 发布的WebService 的示例代码。 Webapps:存放安装Axis 的基础应用。 Xmls:存放相关说明文档。 2.1.32.1.32.1.3 2.1.3 AXISAXISAXIS AXIS 的安装 安装Axis,首先必须保证系统已经正确安装web 服务器,本人使用的Tomcat5.0.28。也 可使用其他应用服务器,例如:weblogic。Webapps下的Axis路径全部复制到Tomcat的Webapps 下。然后打开浏览器:http://127.0.0.1:8080/axis。 如果出现如图所示界面则表示已经安装成功了。 然后点击上面页面的”Validation”连接,如图: Web Service 开发指南 官方网址:http://www.hlmz.org QQ群:3961326 6 第6页 共 165页 该页显示Axis 的必需组件还缺少一个没有安装,两个可选组件也没有安装,单击上面的提 示: 必需组件: http://java.sun.com/products/javabeans/glasgow/jaf.html 可选组件: http://java.sun.com/products/javamail/ http://xml.apache.org/security/ 分别下载:jaf-1_1-fr.zip,javamail-1_4.zip,xml-security-bin-1_2_1.zip包,然后把 jaf-1_1-fr.zip里的Activation.jar,javamail-1_4.zip里的mail.jar,xml-security-bin- 1_2_1.zip里的xmlsec-1.2.1.jar,xalan.jar都放到你的axis应用的WEB-INF/lib下然后在 校验Axis,看到页面提示全部安装成功。 Web Service 开发指南 官方网址:http://www.hlmz.org QQ群:3961326 7 第7页 共 165页 2.1.42.1.42.1.4 2.1.4 开发自己的WebServiceWebServiceWebService WebService AXIS 提供了两种发布方式: 即时发布(Instant Deployment) 定制发布( Custom Deployment) 即时发布提供了一种非常简单的WebService的发布方式,但是其中限制太多,因此在实 际的开发中定制发布才是首选。这里也将会以定制发布为重点来介绍。 2.1.4.12.1.4.12.1.4.1 2.1.4.1 即时发布即时发布即时发布 即时发布 —————— —— JWS(JavaJWS(JavaJWS(Java JWS(Java WebWebWeb Web ServiceServiceService Service ))) ) 即时发布提供了一种非常简单发布方式,发布者只要有Java源代码(也就是.java文件), 然 后 把 其 后 缀 名 改 成 jws ( 也 就 是 Java Web Service 的 缩 写 ) 拷 贝 到 %TOMCAT_HOME%\webapps\axis目录下即完成了所有的发布工作。AXIS的编译引擎会处理接下 来的所有事情。下面是一段示例代码: 服务端: Java代码: /** * JWS方式WebService服务类 Web Service 开发指南 官方网址:http://www.hlmz.org QQ群:3961326 8 第8页 共 165页 * * @author@author@author @author <a href="mailto:HL_Qu@hotmail.com">Along</a> * * @version@version@version @version $Revision$ * * @since@since@since @since 2008-7-10 */ publicpublicpublic public classclassclass class HelloWorldJWS { publicpublicpublic public String test(String a, Integer b) { String result = "a=" + a + ", b=" + b; System.out.println("Received: " + result); returnreturnreturn return "Server Response OK, you send: " + result; } } 把 HelloWorldJWS.java 文 件 改 成 HelloWorldJWS.jws 然 后 拷 贝 到 %TOMCAT_HOME%\webapps\axis 目 录 下 , 启 动 Tomcat 之 后 访 问 http://localhost:8080/axis/HelloWorldJWS.jws如果能看到Click to see the WSDL这个 超链接,就说明已经发布成功了。点击进去就可以看到这个WebService的WSDL描述文件。 Server端的发布已经完成了,接下来就是编写Client端测试代码了。 客户端: Java代码: importimportimport import java.rmi.RemoteException; importimportimport import javax.xml.namespace.QName; importimportimport import javax.xml.rpc.ServiceException; importimportimport import org.apache.axis.client.Call; importimportimport import org.apache.axis.client.Service; publicpublicpublic public classclassclass class ClientJWS { /** * @param@param@param @param args */ publicpublicpublic public staticstaticstatic static voidvoidvoid void main(String[] args) { trytrytry try { String url = "http://127.0.0.1:8080/myaxis/HelloWorldJWS.jws"; Service serv = newnewnew new Service(); Web Service 开发指南 官方网址:http://www.hlmz.org QQ群:3961326 9 第9页 共 165页 Call call = (Call) serv.createCall(); call.setTargetEndpointAddress(url); call.setOperationName(newnewnew new QName(url, "test")); String result = (String) call.invoke(newnewnew new Object[]{"Quahilong", 100}); System.out.println("result = " + result); } catchcatchcatch catch (ServiceException e) { e.printStackTrace(); } catchcatchcatch catch (RemoteException e) { e.printStackTrace(); } } } 测试代码很简单,如果熟悉java反射机制的朋友不用两分钟就能看明白。运行后客户端控制 台出现以下运行结果。果然很简单吧,不过在这简单背后却是以牺牲灵活性为代价的。 运行结果: 客户端: result = Server Response OK, you send: a=Quahilong, b=100 注意:假如你现在手里只有.class 或者一个 jar包,jws就不再能满足你的需求了,最要命的 就是即时发布不支持带包的类,这点 AXIS 的用户手册上写的也很明白。 2.1.4.22.1.4.22.1.4.2 2.1.4.2 定制发布定制发布定制发布 定制发布 —————— —— WSDDWSDDWSDD WSDD 比起即时发布,定制发布更加烦琐也更复杂,但是换来的却是更大的灵活性,因此在实 际项目中定制发布还是不二的选择。定制发布需要你自己编写一个WSDD(Web Service Deployment Descriptor)文件,其实就是一个XML描述文件,稍后会做出介绍。废话不多说 , 我们来看代码: 服务端: Java代码: packagepackagepackage package webservice.axis.wsdd; publicpublicpublic public classclassclass class HelloWorldWSDD { privateprivateprivate private intintint int requestCount = 0; publicpublicpublic public String hello(String name) { requestCount++; Web Service 开发指南 官方网址:http://www.hlmz.org QQ群:396132610 第10页 共 165页 System.out.println("requestCount=" + requestCount); System.out.println("Received: " + name); returnreturnreturn retur

该用户的其他资料

  • 名称/格式
  • 评分
  • 下载次数
  • 资料大小
  • 上传时间

用户评论

0/200
    暂无评论
上传我的资料

相关资料

资料评价:

/ 0
所需积分:1 立即下载
返回
顶部
举报
资料
关闭

温馨提示

感谢您对爱问共享资料的支持,精彩活动将尽快为您呈现,敬请期待!