将EJB发布成WebService总结_第1页
将EJB发布成WebService总结_第2页
将EJB发布成WebService总结_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论