




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
通过WebService实现Java与.Net互联(1)作者:夏治发文时间:2004.06.09WebService概述WebService是能够基于网络,尤其是基于万维网(WorldWideWeb)直接调用的能够处理离散任务或连续任务的软件模型。目前较为流行的应用是,由一家公司对其专有数据进行封装,提供WebService,然后其它公司就可以通过Internet来动态使用这些在线服务。这为未来全球的电子商务发展提供了新的标准和架构。WebService是独立的、模块化的应用,能够通过因特网来描述、发布、定位以及调用。在WebService的体系架构中包括三个角色:服务提供者(ServiceProvider)、服务请求者(ServiceRequestor)、服务注册器(ServiceRegistry)。角色间主要有三个操作:发布(Publish)、查找(Find)、绑定(Bind)。下图清楚的描述了三种角色,以及角色之间的作用关系。WebService协议标准简单对象访问协议(SOAP)SOAP是SimpleObjectAccessProtocol的缩写,是一种基于XML的不依赖传输协议的表示层协议,用来在分散或分布式的应用程序之间方便地以对象的形式交换数据。在SOAP的下层,可以是HTTP/HTTP,也可以是SMTP/POP3,还可以是为一些应用而专门设计的特殊的通信协议。SOAP包括三个主要部分:SOAP封装结构:定义了一个整体框架,以表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。SOAP编码规则:定义了用以交换应用程序定义的数据类型的实例的一系列机制。SOAPRPC表示:定义了一个用来表示远程过程调用和应答的协定。WebService描述语言(WSDL)WSDL是WebServiceDescriptionLanguage的缩写,该语言将网络服务定义成一个能交换消息的通信端点集,为分布式系统提供了帮助文档,同时也可作为自动实现应用间通信的解决方案。统一描述、发现和集成协议(UDDI)UDDI是一套基于Web的、分布式的、为WebService提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的WebService注册,以使别的企业能够发现的访问协议的实现标准。通过Java调用WebService在这里我们通过.net实现了一个WebService,它提供了这样的功能,将输入的两个数相加,返回结果。示例WebService提供的功能该示例WebService提供了两个整数相加的功能,使用C#来实现WebService,可以通过9/java/math.asmx?wsdl访问WebService描述文件,其对应的WSDL描述如下所示:通过WebService实现Java与.Net互联(2)通过JBuilder9调用该WebService建立一个新项目TestWebService新建一项目,指定项目名称TestWebService,及所在目录,其它全部按缺省设置。从URL中导入WebService通过快捷方式CTRL+N,打开新建窗口,选择WebServices项,然后选择ImportaWebService,单击OK。输入WSDL文件地址:9/java/math.asmx?wsdl,然后单击Next。这一步中,所有的选项按缺省设置就可以了。然后单击Next。这一步中,您可以随意指定包名,如果将Packageoptions中的复选框选中的话。生成的所有类将使用同样的包名。然后还可以选择SOAP协议类型,在此我们选择SOAP1.2协议,其它的设置就按缺省设置就可以了,单击Next按钮。在确认窗口中,单击Finish完成导入工作。导入成功后,JBuilder9会自动生成如下文件,如下所示。自动生成文件的作用Service1.java该类定义了所需要的接口Service1Locator.java该类实现了Service1接口,主要用于定位WSDL文件Service1Soap.java该类定义了WebService提供的接口方法Service1SoapImpl.java该类实现了Service1Soap接口Service1SoapStub.java该类实现了Service1Soap接口,用于实现WebService调用。Service1TestCase.javaJBuilder自动生成的单元测试类通过WebService实现Java与.net互联(3)编写测试代码packageorg.tempuri;importjava.util.*;/*测试程序*Title:通过客户端来测试WebService*Description:通过客户端来测试WebService*Copyright:Copyright(c)2004*Company:Tiger*authorSucreTiger*version1.0*/publicclassTestpublicstaticvoidmain(Stringagrs)longstartW=Calendar.getInstance().getTime().getTime();for(inti=0;i3;i+)try/定位WSDL文件的位置Service1Locatorsl=newService1Locator();/获得WebService的引用Service1Soapss=(Service1Soap)sl.getService1Soap();/通过记录开始和结束的时间,来测试Web服务调用所花费的时间longstart=Calendar.getInstance().getTime().getTime();System.out.println(开始时间:+start);/调用WebService提供的功能方法intresult=ss.add(100,99);System.out.println(返回结果:+result);longend=Calendar.getInstance().getTime().getTime();System.out.println(结束时间:+end);System.out.println(时间消费:+(end-start);catch(Exceptionex)ex.printStackTrace();查看测试结果D:JBuilder9jdk1.4binjavaw-classpathD:ProjectsTestWebServiceclasses;D:JBuilder9thirdpartyjunit3.8junit.jar;D:JBuilder9libunittest.jar;D:JBuilder9libsaaj.jar;D:JBuilder9libjaxrpc.jar;D:JBuilder9libaxis.jar;D:JBuilder9libwsdl4j.jar;D:JBuilder9liblog4j-1.2.8.jar;D:JBuilder9libcommons-logging.jar;D:JBuilder9libcommons-discovery.jar;D:JBuilder9libxercesImpl.jar;D:JBuilder9libxmlParserAPIs.jar;D:JBuilder9libactivation.jar;D:JBuilder9libmail.jar;D:JBuilder9jdk1.4demojfcJava2DJava2Demo.jar;D:JBuilder9jdk1.4demopluginjfcJava2DJava2Demo.jar;D:JBuilder9jdk1.4jrelibcharsets.jar;D:JBuilder9jdk1.4jrelibextdnsns.jar;D:JBuilder9jdk1.4jrelibextldapsec.jar;D:JBuilder9jdk1.4jrelibextlocaledata.jar;D:JBuilder9jdk1.4jrelibextsunjce_provider.jar;D:JBuilder9jdk1.4jrelibimindicim.jar;D:JBuilder9jdk1.4jrelibjaws.jar;D:JBuilder9jdk1.4jrelibjce.jar;D:JBuilder9jdk1.4jrelibjsse.jar;D:JBuilder9jdk1.4jrelibrt.jar;D:JBuilder9jdk1.4jrelibsunrsasign.jar;D:JBuilder9jdk1.4libdt.jar;D:JBuilder9jdk1.4libhtmlconverter.jar;D:JBuilder9jdk1.4libtools.jarorg.tempuri.Test开始时间:1084968122004返回结果:199(WebService返回的操作结果)结束时间:1084968122833时间消费:829(/调用一次WebService所花费的时间,单位毫秒)开始时间:1084968122848返回结果:199结束时间:1084968123036时间消费:188开始时间:1084968123036返回结果:199结束时间:1084968123223时间消费:187通过JSP来调用WebService将JBuilder9通过导入WSDL文件生成的类,打包成Client.jar。上图是要打包的类文件的目录结构,使用如下命令完成打包操作:jar-cvfClient.jarorg在JBuilder9的安装目录的LIB子目录下,查找如下类包(axis.jar、commons-discovery.jar、jaxrpc.jar、log4j-1.2.8.jar、commons-logging.jar、saaj.jar、wsdl4j.jar)。编写JSP测试代码,并将其打包生成测试的WEB应用。上图是要打包的Web应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国男士衬衣行业发展分析及竞争格局与发展趋势预测报告
- 2025至2030中国生姜产品行业市场占有率及投资前景评估规划报告
- 2025至2030中国甑炭行业需求动态及发展前景研究报告
- 点菜技巧培训
- 新人法律培训
- 商业成功背后的学生动机分析
- 校园智慧体育设施的建设现状及挑战
- 情绪智力在教育心理学中的核心地位
- 医疗行业中的科技应用与师资培训模式研究
- 商业环境下的教育创新与青少年运动培训的融合研究
- 智慧农业项目建设方案
- 人工智能模拟题
- 2024年下半年江苏南通启东市部分事业单位选调工作人员14人易考易错模拟试题(共500题)试卷后附参考答案
- 教师资格考试小学美术面试试题及答案指导(2025年)
- 住家保姆合同协议书模板
- AI如何赋能艺术教育-笔记
- DB11T 485-2020 集中空调通风系统卫生管理规范
- 《人力资源管理》全套教学课件
- Unit 6 Craftsmanship Reading 教案-2023-2024学年中职英语高教版(2023修订版)基础模块2
- 2023-2024学年山东省菏泽市东明县八年级(下)期末数学试卷(含答案)
- 初高中物理衔接讲座(初高中物理对比)
评论
0/150
提交评论