首页 Webservice实验报告

Webservice实验报告

举报
开通vip

Webservice实验报告PAGE\*MERGEFORMAT#JIANGSUUNIVERSITY题目:WebServices实验报告所属学院:计算机学院专业班级:软件1201名:学号:题目一:调用第三方webService的接口实现便民信息的查询,例如天气预报或者火车信息。・实验要求编写客户端,调用第三方WebService提供的接口,实现对基本信息的查询。二.运行环境Windows8+Eclipse(JDK8.0)三实验原理及过程新建JavaProject,项目名称为“天气查询”,新建包com.soap(放置跟webservice服...

Webservice实验报告
PAGE\*MERGEFORMAT#JIANGSUUNIVERSITY题目:WebServices实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 所属学院:计算机学院专业班级:软件1201名:学号:题目一:调用第三方webService的接口实现便民信息的查询,例如天气预报或者火车信息。・实验要求编写客户端,调用第三方WebService提供的接口,实现对基本信息的查询。二.运行环境Windows8+Eclipse(JDK8.0)三实验原理及过程新建JavaProject,项目名称为“天气查询”,新建包com.soap(放置跟webservice服务调用相关的类)和包com.ui(放置跟UI界面编程相关的类)。在com.soap包下新建类名为WeatherServices的Java文件。该类的作用调用中国天气网提供的免费接口"HYPERLINK"http://www.webxml.com.cn/WebServices/WeatherWS.asmx%22%e5%ae%9e%e7%8e%b0%e5%af%b9%e5%9f%8e%e5%b8%82"http://www.webxml.com.cn/WebServices/WeatherWS.asmx"实现对城市的天气的实时查询。项目结构如图:中间用到的方法主要有:(1)getSoapRequest(Stringcity).这个方法的作用是得到一个Soap请求。(2)getSoapInputStream(String这个方法是通过调用上述免费接口获得URLConnection连接对象,并对SoapcityJ£騎J倒SICl-呂cn.com.^ebxmlJ日com.soapl>©Em吕ilServicej狄3l”』MobileSer^'ice.java)。tJ]WeatherScRkeijavacom.uil:・』MainFrame.java:BiJR.ESjstemLibrary[J^aSE-1.8]输入流进行相关的设置,包括编码格式等。(3)getWeather(Stringcity)。解析xml,获取相应的信息。由于查询后返回的原始结果是一个xml文档,因此需要对该文档进行DOM解析,从而获得我们需要的信息。3.在com.soap包下新建MobileService.java文件,用来实现对手机号码基本信息的查询。使用的接口是:HYPERLINK"http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asm"http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl4.在com.soap包下新建EmailService.java,实现对邮箱地址的验证。采用的接口是:http://www.webxml.com.cn/WebServices/ValidateEmailWebService・asmx?wsdl");5.在com.ui包下新建类名为MainFrame的Java文件。实现客户端的可视化布局。里面 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 的主要函数包括:(1)MainFrame(Stringstring)。这是一个构造方法,对窗体进行简单的初始化,以及为相应的控件添加事件监听及响应。四■运行效果劉童询服务L^JI—天气查洵:邮箱验证二电话查洵三圧0:动oO度。活动霜湿直内匹底;阳宀甬粉级太箱。油O戴。曰荐车无。018flA风:霍,络面度黑水质湿H-6:外。曙on:有请46气i需。宀县且.,・8:••无不适不丞冃血实:繳.-isstn.无。话.H./rr.・f.asri即Hnnrm7i:・E辖海1315日气阳衣當车警fi「外话一Iml杳询服务■12279214■严HYPERLINK"mailto:l@qq.un"l@qq.un天气查间:抑箱验证:电话查间:挪件服务器没有找到仃4卜题目二自定义webservice,并将其发布,然后编写客户端,调用该webservice。实验要求编写客户端,调用第三方WebService提供的接口,实现对基本信息的查询。运行环境Windows7旗舰版+Eclipse(JDK8.0)三实验原理及过程该实验需要自己编写相应的服务器端和客户端。而我要实现的功能是在客户端窗体输入学号,然后通过调用webservice来返回学号对应的学生的姓名。实现服务的发布的方式有很多种,例如用Axis2来实现。其实,JDK本身就提供了WebService服务发布的方法,就是jax-ws。具体实现的过程如下:1•服务器端新建JavaProject,项目名称为:webServervices_student_server。在该项下新建包com.webservice.server。在包中新建一个接口Studentinterface,在接口中声明一个查询的方法studentQuery(intnumber);新建Studentinterface接口的实现类Studentinterfaceimp,在类中实现Studentinterface接口中的查询方法studentQuery(intnumber)。Main方法中的Endpoint.publish("HYPERLINK"http://127.0.0.1:5432/student"http://127.0.0.1:5432/student",newStudentinterfaceimp())方法是发布服务。其中http://127.0.0.1:5432Ystudent是在本地自定义的RUL,54321是服务的端口号。运行该程序,会看到会打印以下提示信息,说明该服务已经启动:-I:-li—■■■-j1li-l:-reir-rirr@ConsoleSSDebug・)C險II络肛匡固刼udEMTn怕rfa匸ETmp卩;3咛•口伯取斡.甑色(2Di译5月28日"F午8:14皿6]发布成功接下来要做的就是要生成WSDL文件。在浏览器地址栏中输入http://127.0.0.1:5432:/student?wsdl,回车,会看到以下所示界面,说明已经将服务发布成功。c冲ml僧压0rTC^ing=l,U7F-S,,?><1―Publishedby1AX-WSIR1(HYPERLINK"http://jax-ws.java.nel"http://jax-ws.java.nel).IRJ'&vsrskhnisMX-WSRJ2!.2.9-1>130!926.103&svnfwHiQn拓阳均砒旳饥尉&口恥&^疋同日珈电0砧1?24血510・一二<1-^ene^tedbyJflXW5RI(http:y?iaK-ws.ja\'E.net}.FUEversionisJ4X-W5R12_2_;-b13D&26.1035svn-nevEi[}fi#5fi6196f2n-9ae946D:6534cZf4^30eM5h245e51t->-^partnama=p^rflin^ters'elBmerit="ins;5tudenltQuEryRiBsponee'/?-cportT^pename=Studentlnteirfacelrnp3>-cciperctiDnname=1stiMientQueiryl,>荀叩utmesssge=1ln5:5tiLidentQ«er¥,Action=,littp://ser¥errWeljiM:rrfMX3(m/St4jdentputrn&5&age="tin-KstudenbQuBryRespgnrse'wsarn;Acbon='http://5erver,webser¥kB,com/StiidentInterfflcernip/studentQirery,Ra5pon5«l,1|!>^j'opsratian^^/portTypE^-cbinding'tns:studentlnterfacelmp'rimrnz^rucferillntertfMHmipPQHB油din『r疋豁ap:bindingstye='document""HYPERLINK"http://jctnl"http://jctnlsoap.orqiy&oap/hltp7>■^flperatipnnamsi=J,5tudeini|:Query"><5oap;cperaUonsaapAction=>-<2aap:badyu5e=lllrteriil"/>--0卩口吃name='S-tudentlnLerfcceImpPort'bindin=1tns:StudeiiUriterfac^JnipPortBinding>cscap;Eddr-essiDaU-an='http;;//127.0.D.1;$4321/sludent7?=:/port=-2•客户端(1)为了模拟远程调用,新建JavaProject,项目名称为:webServervices_student_client。在该项下新建包com.webservice.client。由于采用的是jax-ws,所以在客户端还需要用到按照上述的wsdl规格约束编译的.java文件。具体的实现如下:1)新建一个java项目wsimport,该项目可以用来专门放置其他项目的编译文件。找到该项目的src的绝对目录F:\Eclipseforjavaee\wsipport\src.2)在cmd命令窗口运行cdF:\Eclipseforjavaee\wsipport\src进入该目录下;3)接着输入命令:wsimport-s.http://127.0.0.1:5432Ystudent?wsdl。注意中间的空格,回车后,结果如:就员:C:\Windows\system32\cmd.exe200^MicrosoftCoppcvatictno保紐所有权利。C:xJUsers\£upepBy>cdF:^EclipseforJauaee\weippcFt\spcC:\JUsers\SuperBy>f"F:\EclipseFofjauaee\wsippor驱动盎F中的春是SoftwareFiles卷的序列号是fi2FC-8fi82forJauaee\jwsIppGrt\src的目录!2015/35/lfi2015/35/lfi2015/35/1(;13:2913:2913:290webseruices0字节59,484,405,760可用字节F:\Eclipse£qfJavaeeippcrtXsrc>wsinpcrt-s・http://127.0.0.1:S432i/student?正在解析WSDL...正在生成代码「・正在编译代码-•F:\EclipseforJauaee\wsipportXsrc>返回wsimport项目,右键刷新,会看到多出来一个包,这个包的名字和之前的服务器端的包名一致。将该包原封不动复制到该客户端的src目录下。新建Client窗体类,实现客户端的编程。整个客户端的项目结构如下:Jweb£ervervice&_Etudent_clientJ0sbJ舟com.web&ervice.clientJT]Client.java丿田com.webservice.server血ObjectFadory.java[J]package-info寸ava[i]Studentlnterfacelirrp.java\j]StudentlnterfacelirrpService.java卜也StudentQuery.java®StudentQueryResponse.java>ftJRESystemLibraryJsvs£E-l.B]四■运行效果20你输入的学号是:刘査词结果为:张疲闺L^_L_5Jb&bI请输人芋号进行査闻33你输入的学号是;33查询结果为:褚蓉实验感想第一次接触WebService这个概念,感觉还是挺陌生的。之前有听说过便民查询服务,而且也亲身用过。查阅了很多资料,才知道这些功能就是用WebService来实现的。大概了解了相关的知识和调用第三方的服务接口的流程后,才知道,一个服务的发布和调用,也是很简单的。当然在整个过程中,还遇到过多次的失败,虽然不是很难的程序,但是如果其中某一步没有按照正确的顺序来执行,会很容易出错的。以下就来说说遇到的有一些问题:在发布服务的时候,未能成功的生成wsdl文件。分析原因主要有URL的端口没有设置好,或者服务端的程序编写有误。当服务开启后,也就是服务端程序成功执行后,再在浏览器的地址栏里输入url+?wsdl,会成功生成。在解析命令窗口解析wsdl的时候,不会生成.java文件,或者生成的.java文件所在的包名和原先的服务程序的包名不一致,说明解析有误,需要重新解析。在输入命令的时候,wsimport-s.http://127.0.0.1:54321?wsdl中间的空格不能少。虽然这次的实验实现的功能比较简单,但是它却涵盖了一个完整的webservice的发布和调用的全过程,有了这次的实践。那么以后再做比较复杂的服务的时候也就不用担心没有头绪了。附录:源代码(天气查询+自定义服务)天气查询:(1)WeatherService.javapackagecom.soap;importjava.io.InputStream;importjava.io.OutputStream;importjava.io.OutputStreamWriter;importjava.net.URL;importjava.net.URLConnection;importjavax.xml.parsers.DocumentBuilder;importjavax.xml.parsers.DocumentBuilderFactory;importorg.w3c.dom.Document;importorg.w3c.dom.Node;importorg.w3c.dom.NodeList;publicclassWeatherServices{privatestaticStringgetSoapRequest(Stringcity){StringBuilderbuilder=newStringBuilder();builder.append(""+""+""+""+city+""+"");returnbuilder.toString();}privatestaticInputStreamgetSoapInputStream(Stringcity)throwsException{try{Stringsoap=getSoapRequest(city);if(soap==null){returnnull;}URLurl=newURL("HYPERLINK"http://www.webxml.com.cn/WebServices/WeatherWS.asmx"http://www.webxml.com.cn/WebServices/WeatherWS.asmx");URLConnectionconnection=url.openConnection();connection.setUseCaches(false);connection.setDoInput(true);connection.setDoOutput(true);connection.setRequestProperty("Content-Length",Integer.toString(soap.length()));connection.setRequestProperty("Content-Type","text/xml;charset=utf-8");connection.setRequestProperty("SoapAction","HYPERLINK"http://WebXml.com.cn/getWeather"http://WebXml.com.cn/getWeather");OutputStreamout=connection.getOutputStream();OutputStreamWriterwriter=newOutputStreamWriter(out,"utf-8");writer.write(soap);writer.flush();writer.close();out.close();InputStreamin=connection.getInputStream();returnin;}catch(Exceptione){e.printStackTrace();returnnull;}}publicstaticStringgetWeather(Stringcity){try{DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();factory.setNamespaceAware(true);DocumentBuilderbuilder=factory.newDocumentBuilder();InputStreamis=getSoapInputStream(city);Documentdoc=builder.parse(is);//因为webservices调用后返回的xml的每个元素都是stringNodeListlist=doc.getElementsByTagName("string");StringBufferbuffer=newStringBuffer();for(inti=0;i56||number<1){result="非法输入!";textArea.setText(result);"+result);}else{textArea.setText("你输入的学号是:"+number+"\n"+"查询结果为:System.out.println(result);}}});search.setBounds(139,104,73,23);contentPane.add(search);cancel=newJButton("取消");cancel.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventarg0){textField.setText("");textArea.setText("");}});cancel.setBounds(222,104,73,23);contentPane.add(cancel);textArea=newJTextArea();textArea.setBounds(105,153,223,70);contentPane.add(textArea);Componentglue=Box.createGlue();glue.setBounds(61,196,1,1);contentPane.add(glue);}publicstaticvoidmain(String[]args){Clientframe=newClient("自定义webservice调用");frame.setVisible(true);
本文档为【Webservice实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
天涯明月
暂无简介~
格式:doc
大小:134KB
软件:Word
页数:20
分类:高中语文
上传时间:2022-08-05
浏览量:1