zoukankan      html  css  js  c++  java
  • 带你走进EJB--将EJB发布为Webservice(1)

              Web service是一个平台独立,松耦合基于可编程的web的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。


            简单说Web service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。也就是我们能够用编程的方法通过Web来调用这个应用程序。我们把调用这个Webservice 的应用程序叫做客户。


              EJB发布成WebService,在EJB容器中是很简单的事情,只要容器实现了JavaEEJAX-WS标准就即可,我们需要做的就是增加一点点有关WebService的注解,打包发布到应用容器即可。接下来我们将进一步对EJB进行深入的了解,并且掌握将EJB发布为WebService.


             服务端代码如下:

             模拟用户管理接口

     

    		/**
    		 * 用户管理接口
    		 * @author Qing
    		 *
    		 */
    		public interface UserManager {
    			public String sayHello(String name);
    		
    		}
    

     

     

              实现UserManagerEJB

     

    		package com.tgb.ejb;
    		
    		import javax.ejb.Remote;
    		import javax.ejb.Stateless;
    		import javax.jws.WebMethod;
    		import javax.jws.WebService;
    		
    		
    		@Remote
    		@Stateless
    		@WebService(name = "UserManagerWebService"
    		)
    		public class UserManagerBean implements UserManager{
    			@WebMethod
    			public String sayHello(String name) {
    				return "你好" + name;
    			}
    		
    		}
    

     

     

           服务端可以不用强制规定WebService必须实现一个接口了,而一个普通的POJO+EJB注解的类就可以当做WebService服务器类。 不过这里我们还是继续用实现接口的方式.

          

         接下来将此类打包部署到JBoss容器中并且重启JBoss,打开链接http://127.0.0.1:8080/jbossws我们将会看到下面的界面.

        

    计算机生成了可选文字:V甘e1Cometo」BOSSVVebSeFVICeS乃ossWS1宝aIAX一WScompli抓twebservicestackdevelopedtobepartof拙055Jav吐ESofferingAdministrationR~ti一einfor.压tion·yer,10。:jl,o二,,,一nati,e一3.1.2.G人Build:200905081542·VIewaIistofdeployedservices.ACCe55]MXC0n50!ePro】ectinrormationDoc.月.entation。Latestdownloadandsamples·FAQ·Usergulde.]BOSSWSWIKI。RecordsmanagementCo一~it了.Userforum·Designforum。Mailinglist50叮eerepositor萝SubversionrepositoryBFOWSeg0U陀esDnline

             点击 a list of deployed services我们能够看到所发布的WebService服务,下图就是我们刚刚通过EJB来发布的Webservice.

             

    计算机生成了可选文字:EndpointNamejboss.ws:conteXt=ejb_webservice,endpoint=UserManagerBeanEndpointAddresshttp://127.0.0.1:8080/ejb_webservice/UserManagerBean?wsdlStartTimeStopTime下hUOCt3116:40:27CST2013RequestCountResponseCountFaultCount000M旧processingTimeMaxprocessingTimeAvgprocessingTime000

     

    点击Endpoint Address后面的链接我们会看到wsdl文档,如下图.

     

    计算机生成了可选文字:This珊Lfi1edoesnot即peartohaveanystyleinfor功ationassociatedwithit.Thedoc咖enttree15sho帕below.甲<definl士工onsx几Ins二“狱tp://sche取as.x址150叩.org/wsdl/口x取Ins:50却二“http://sche址as.x讯130却.org/wsdl/50却/介x爪Ins:tns二“址tp://ejb.tgb.co耐“x取Ins:xsd="http://~.w3.org/2001/X忆Sche爪a"n柳e二“User取anagerBeansery主ce"targetN哑espace二“http://ejb.tgb.co耐“>甲<t扣es>,<xs:sche爪ax几Ins:tns二“狱tp://e〕b.tgb.co耐“x几Ins:xs二‘http://~.毋3.org/2001/XMLSche爪a"targetN视espace二“http://ejb.tgb.com/"version="1.0"><xs:ele爪entn抓e二“addUser"t扣e二“tns:addUser"/><xs:ele爪entn抓e二“addUserKesponse"t抑e二“tns:addUserResponse"/><x::ele爪entn抓e二“sayHello"t"e二“tn:::ayHello"/><xs:ele爪entn抓e二“sayHelloResponse"t"e二“tns:sayHelloRe:ponse"/>甲<xs:co呻lexT扣en观e二“addUser">,<xs:sequence><又s:ele爪ent几inoccurs二“0'n柳e二‘argo't抑e二“tns:user"/></xs:se叫ence></xs:co叩le义T"e>,<xs:co呻le装T"en抓e二“user">,<xs:se叭ence><xs:ele爪ent爪inoccurs二“0"n抓e二“address't"e二“xs:string"/><xs:ele爪entn砚e二“age"t"e二“xs:int"/><xs:ele爪entminoccurs二“0"n抓e二“n抓e"t抑e二“装s:string"/></xs:se明ence></xs:co呻lexT"e>甲<xs:co帅lexT"en观e二“addUserResponse"><xs:se职ence/></xs:co帅lexT"e>,<xs:co帅lexT"en哑e二“sayHello">甲<xs:se职ence><xs:ele爪ent爪inoccurs二柑0"n抓e二“argo"t"e二“xs:string"/></又3:se明ence></xs:co帅lexT"e>,<xs:co呻le装T"en抓e二“sayHelloResponse">,<xs:se叭ence><xs:ele爪ent址inoccurs二介0"n哑e二介return布t"e二“xs:string"/></xs:se叫ence></xs:co叩lexT"e></xs:sche爪a><八ypes>

     

     


           至此我们已经完成了将EJB发布为WebService.通过此Webservice我们可以通过客户端来进行调用并完成相关的业务逻辑.跟一般的EJB区别主要是在一个注释上:@WebService 通过此注释我们可以完成将EJB发布成WebService.

            至于如何通过客户端来调用我们已经发布好的WebService,下一篇文章将会通过客户端来调用调用已经发布好的WebService.

  • 相关阅读:
    素数路径Prime Path POJ3126 素数,BFS
    Fliptile POJ3279 DFS
    Find the Multiple POJ1426
    洗牌Shuffle'm Up POJ3087 模拟
    棋盘问题 POJ1321 DFS
    抓住那只牛!Catch That Cow POJ3278 BFS
    Dungeon Master POJ2251 三维BFS
    Splitting into digits CodeForce#1104A
    Ubuntu下手动安装Nvidia显卡驱动
    最大连续子序列和
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3402590.html
Copyright © 2011-2022 走看看