下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、EJB发布成WebService总结1. 将EJB发布成,或者说暴露成Web服务(也许更贴切),在EJB容器中不是困难的事情,只要容器实现了 JavaEE的JAX-WS标准就行了,开发人员要做的就是增加一点点有关 WebService的注解,打包发布到应用容器即可。不过在笔者使用 JBoss5作为EJB容器的时候,调用 Web服务出现了异常后发现是JDK版本的问题,改用 JDK1.5编译EJB 类、启动JBoss后才能正常调用。这个问题先留着,回头使用JBoss6的时候在试试吧2. helloworld服务端代码服务端不用再强制规定WebService必须实现一个接口了,而一个普通的POJO+
2、EJ吐解的类就可以当做 WebService服务器类。代码如下:package webservice.HelloWebService;import ;import ;StatelessWebService (n ame ="HelloWebService" )public class HelloWebService publicStr ing sayHello(Stri ng n ame) "客户端调用了服务器端的代码“);return "你好:"+ name+ ",传授给你武功-旋空斩";将此类打包部署到 JBoss容器中
3、,重启JBoss打开链接.1:8080/jbossws看到如下界面选择 View a list of deployed services 查看 webservice 歹U表点击链接即可看到 WSDL文档<definitions name='HelloWebServiceService' targetNamespace=" xmlns='/' xmlns:soap='/soap/' xmln s:t ns=" xmln s:xsd='/XMLSchema'><types><xs:sc
4、hema targetNamespace='' version='1.0' xmln s:t ns=" xmln s:xs='/XMLSchema'><xs:eleme nt n ame='sayHello' type='t ns:sayHello'/><xs:eleme nt n ame='sayHelloResp on se' type='t ns:sayHelloResp on se'/><xs:complexType n ame=
5、'sayHello'><xs:seque nce><xs:eleme nt minO ccurs='0' n ame='arg0' type='xs:stri ng'/></xs:seque nce></xs:complexType><xs:complexType n ame='sayHelloResp on se'><xs:seque nce><xs:eleme nt mi nO ccurs='0' n ame=&
6、#39;retur n' type='xs:stri ng'/></xs:seque nce></xs:complexType></xs:schema></types>vmessage n ame='HelloWebService_sayHelloResp on se'><part eleme nt='t ns:sayHelloResp on se' n ame='sayHelloResp on se'></part></messag
7、e><message n ame='HelloWebService_sayHello'><part eleme nt='t ns:sayHello' n ame='sayHello'></part></message>vportType n ame='HelloWebService'><operatio n n ame='sayHello' parameterOrder='sayHello'><in put message
8、='t ns:HelloWebService_sayHello'></i nput><output message='t ns:HelloWebService_sayHelloResp on se'x/output></operati on></portType>vbinding n ame='HelloWebServiceB indin g' type='t ns:HelloWebService'><soap:b inding style='docume
9、nt' tra nsport='/http'/><operatio n n ame='sayHello'><soap:operati on soapAct ion="/><i nput><soap:body use='literal'/></in put><output><soap:body use='literal'/></output></operati on></binding>&l
10、t;service n ame='HelloWebServiceService'><port bindin g='t ns:HelloWebServiceB inding' n ame='HelloWebServicePort'> <soap:address locatio n='.1:8080/EJBWebService/HelloWebService'/></port></service></defi niti ons>3. 客户端测试程序我们使用IDE工具生成
11、客户端代码,在MyEclipse中选择new菜单,选择 Web服务客户端,如下图所示选择生成代码的目标项目和类型之后输入 WSDL文档的URL位置,如下图所示之后选择Next进入加入依赖包的选项如果不加入任何依赖包也可以,可以手工下载CXF项目(),将它的lib下的wsdl4j-vers ion .jar、XmlSchema-versio n.jar 拷贝至 U客户端 Classpath 下面就行。之后生成的代码如下 其中HelloWebServiceService是需要客户端稍微关心一下的类,客户端调用这个类的方法 就能调到服务器端的代码。测试程序如下public static void m
12、ain( Stri ng args) HelloWebServiceServicehelloWebServiceService= new HelloWebServiceService。;HelloWebService helloWebService =helloWebServiceService.getHelloWebServicePort();"单锋剑尊");4. 复杂对象调用的例子以上例子只是简单调用了WebService,参数是简单的 String,如果我们客户端需要获得复杂的,自定义的对象可以吗?答案是EJB容器也很完美的做到了服务端代码如下package webs
13、ervice.HelloWebService;import ;import ;import ;StatelessWebService (n ame ="HelloWebService" )public class CarWebService public Car callCar(Stri ng n ame) "客户“ + name +"端调用了服务器端的代码“);Car car = new Car(); car.setName( "宝马”); car.setMessage( "BMW"); return car;这个服务类调
14、用了一个Car实体类,这个类是一个自定义的POJO类代码如下package ;public class Car privateStringname;privateStringmessage ;publicStri ng getName() returnname ;public void setName(Stri ng n ame) this . name = name;publicStr ing getMessage() returnmessage ;public void setMessage(Stri ng message) this . message = message;Overrid
15、epublicStri ng toStri ng() / TODO Auto-ge nerated method stubreturn "name:" + name +" - "+ message ;客户端在生成代码的时候也会将这个返回值的实体类代码生成一下。客户端生成的程序如下测试代码如下public static void main( Stri ng args) CarWebServiceServicecarWebServiceService= new CarWebServiceService();HelloWebService helloWebService = carWebServiceService.getHelloWebServicePort();Car car = helloWebService.callCar("素续缘");+"-&quo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厂区除草合同范例
- 劳务人员雇佣合同范例
- 哈尔滨校外培训合同范例
- 产业规划合同范例
- 培训专项合同范例
- 全媒体合作合同范例
- 修理厂合同模板模板
- 内墙涂料销售合同模板
- 写字楼出售合同范例
- 征收补偿协议书模板
- 2024年消防宣传月知识竞赛考试题库500题(含答案)
- 2024年典型事故案例警示教育手册15例
- 高一历史(中外历史纲要上册)期中测试卷及答案
- 20K607 防排烟及暖通防火设计审查与安装
- 一氧化碳中毒培训课件
- 教案(餐巾折花)
- 设计方案——喷漆烘干房
- Humpty儿童跌倒评估量表
- 金山江天寺规约
- 三相四线制功率计算原理及计算方法(讲得很好)
- 南邮综合设计报告(课程设计)proteus和Keil
评论
0/150
提交评论