




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
以前因为公司只用websphere,所以也就只对websphere略有了解。只把它当做工具,也没充分了解。忽一日知道有些模样的网站都在自己做webservice,就花了一些时间学习了一下。班门弄斧,抛砖引玉吧。因为web的Http服务实际上就是请求和响应的交互,即service和client端的交互。先建服务器端目录:webService服务器端的类HelloWorld.javaimport javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebResult;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;WebService(targetNamespace = )SOAPBinding(style = SOAPBinding.Style.RPC)public class HelloWorld WebMethod(action=toSayHello,operationName=toSayHello,exclude=false) WebResult(name=returnWord)/自定荵芽?方法返回蛟?在WSDL中相蜈?的描述 public String sayHello(WebParam(name=userName)String userName) returnHello : + userName; WebMethod public int getExp(int i, int j) return i / j; / wsgen -cp ./bin -r ./wsdl -s ./src -d ./bin -wsdl atest.webService.HelloWorld当前目录下面编译一下:javac HelloWorld.java建3个目录:src,bin,wsdl执行以下命令行语句:wsgen -cp ./ -r ./wsdl -s ./src -d ./bin -wsdl HelloWorld编写StartService.java(webservice启动器)import javax.xml.ws.Endpoint;public class StartService public static void main(String args) Endpoint.publish(http:/localhost:8080/webservice/hws, new HelloWorld(); 编译 javac StartService.java启动服务:java StartService1:可以用jconsole查看服务是否启动。2:也可以在浏览器地址栏中输入:http:/localhost:8080/webservice/hws 会显示:Web ServicesNo JAX-WS context information available.3:http:/localhost:8080/webservice/hws?wsdl如果 一个XML文件显示,OK,已经启动。服务器,其实已经做好了。简单吧。下面做客户端:建客户端目录client,当然也可以换台机器来做,更形象。重新用cmd起一个命令行容器。同样建3个目录:src,bin,wsdlwsimport -d ./bin -s ./src -p clienthttp:/localhost:8080/webservice/hws?wsdlparsing WSDL.generating piling 会生成2个文件:HelloWorld.java HelloWorldService.java移到client根目录下。编译一下。编写文件:ClientRun.javapublic class ClientRun /*paramargs */ public static void main(String args) HelloWorldService hws = new HelloWorldService(); HelloWorld hw = hws.getHelloWorldPort(); System.out.println(hw.getExp(9, 3); System.out.println(hw.toSayHello(hiyachen); 编译 javac ClientRun.java运行:java ClientRun以下结果就OK了.3Hello:hiyachen环境:JDK6,soap1.1,wsdl,annotationwebservice其实也不难,再用上java的servlet类,就可以编出个tomcat了。加上socket的Socket client = new Socket(127.0.01., 80); /客户端向port:80发送请求ServerSocket server = new ServerSocket(80); /服务器监听port:80的请求。关于webservice的一些词汇和注视的解释,请读:自己动手做一个WebService (2)本文只对一些概念做些说明,使用例子请参照:自己动手做一个WebService (1)什么是Web ServicesWeb service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。基于浏览器的瘦客户应用程序,即BS结构,是目前流行的,使得Web Services的应用越来越广泛。Web Services是一种构建应用程序的模型,并能在所有支持Internet通讯的操作系统上实施运行。Web Services令基于组件的开发和Web的结合达到最佳,基于组件的对象模型,利用SOAP和XML对这些模型在通讯方面作了进一步的扩展以消除特殊对象模型的障碍。因为是使用XML作为传输的介质,所以可以跨平台跨语言。Web Services实现远程访问,有点类似RMI(远程方法调用)。但它是利用HTTP和SOAP协议是商业数据在Web上传输,SOAP通过HTTP调用商业对象执行远程功能调用,Web用户能够使用SOAP和HTTP通过Web调用的方法来调用远程对象。Web Services结构客户根据WSDL描述文档,会生成一个SOAP请求消息。Web Services都是放在Web服务器上面,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。Web服务器再把这些请求转发给Web Services请求处理器。请求处理器的作用在于,解析收到的SOAP请求,调用Web Services,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把信息送回到客户端。什么是WSDLWSDL是WebServicesDescriptionLanguage的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。Web Services服务器把一个对像绑定到一个URL上(如http:/localhost:8080/webservices/hello),客户端就可以能过绑定的地址(如:http:/localhost:8080/webservices/hello?wsdl)取得WSDL文件,该文件是标准的XML格式,描述了被绑定对像的信息,包括可调用的方法,参数,及参数类型,返回值类型,异常类型等。客户端就是通过这些信息调用服务器的方法。什么是SOAP简单对象访问协议(simple object access protocol)特点:1、http传输协议。 2:请求-响应。 3:基于XML 。4客户端与web服务间信息传递。二、JKD6对Web Services的支持JDK6提供了对Web Service原生的支持,对Web Service进行了完美的封装,完全隐藏了底层内容,甚至可以不用了解wsdl的具体规范。使用Web Service就像使用本地方法一样简单。下面来举个例子,依然从最简单的HelloWorld入手。HelloWorld例子STEP 1,服务器端Bean说明服务器端的Java类若要成为一个实现了Web Service的bean,它需要遵循下边这些原则:这个类必须是public类、不能是final的或者abstract、必须有一个公共的默认构造函数、绝对不能有finalize()方法。若要成为一个实现了Web Service的Bean的方法必须遵循这些原则:这个方法必须是public,它的参数、返回值、和异常在每个JAX RPC规范中都描述了Java转化成XML/WSDL映射文件的规则,参数和返回值可以是原始类型、数组等等。JKD6中定义的Web Service注释1. WebService标注要暴露为WebServices的类或接口,用于申修饰类或接口,包含属性targetNamespace定义命名空间,默认为”http:/”+”包名倒排”nameWeb Service的名称,默认为类名,例如:portNameWeb Service的端口名称serviceNameWeb Service的服务名称,例如 . wsdlLocation描述服务的预定义 WSDL的位置endpointInterface定义服务抽象 Web Service协定的服务端点接口的完整名称2. SOAPBinding定义Web Service在SOAP中的消息协议,用于申修饰类或接口,包含属性style定义消息的编码类型user定义消息的格式化类型3. WebMethod定义Web Service运作的方法,包含属性action操作的活动operationName与此方法匹配的wsdl:operation的名称exclude标注此方法是否被暴露,默认为false4. WebResult定义返回值,返回值类型不能为接口类或抽象类,而且必须有个不带参的构造函数,包含属性name返回值的名称partName表示此返回值的wsdl:part的名称targetNamespace返回值的XML名称空间header如果为true,则结果是从消息头而不是消息正文获取的5. WebParam定义方法的参数,参数类型不能为接口类或抽象类,而且必须有个不带参的构造函数,包含属性name参数名称partName表示此参数的wsdl:part的名称targetNamespace参数的XML名称空间header如果为true,则结果是从消息头而不是消息正文获取的mode参数的流向(IN、OUT或INOUT之一)wsgen与wsimport命令说明wsgen命令的主要功能是用来生成合适的JAX-WS。它读取Web Service的终端类文件,在我们的例子中就是test.jws.service.HelloWorld,同时生成所有用于发布Web Service所依赖的源代码文件和经过编译过的二进制类文件,通常Web Service Bean中用到的异常类会另外生成一个描述Bean。它还能生成WSDL和符合规范的HelloWorld类Web Service。wsgen从资源文件生成一个完整的操作列表并验证是合法的。如果Web Service Bean中的主法有申明抛出异常,这一步是必需的,否则服务器无法绑定该对像。命令参数说明:-cp定义classpath-r生成bean的wsd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全款转让房产合同范本
- 加班法务合同范本
- 公司入股合同范本文档
- 仔猪购销纠纷合同范本
- 包装插画合同范本
- 农村协议买房合同范本
- 2024年金山区卫生健康事业单位招聘卫生专业技术人员考试真题
- 2024年南丹县丹融文化传媒有限公司招聘笔试真题
- 农村修水渠合同范本
- 2024年阜阳市皖西北(阜南)粮食产业园有限公司招聘考试真题
- 二年级剪窗花
- 分子生物学在医药中的研究进展及应用
- 《对折剪纸》)ppt
- 03SG520-1实腹式钢吊车梁(中轻级工作制A1~A5_Q235钢_跨度6.0m、7.5m、9.0m)
- 以虚报注册资本、虚假出资、抽逃出资为由对实行认缴资本登记制的公司进行处罚无法律依据
- 风电场生产运营准备大纲11.14
- 人教版八年级语文下册教材研说
- 《机械制造装备设计》ppt课件
- 中学家访记录大全100篇 关于中学家访随笔
- 全国防返贫监测信息系统业务管理子系统操作手册
- 小学综合实践活动_植物的繁殖—扦插
评论
0/150
提交评论