微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带你走进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爪an柳e二“User取anagerBeansery主cetargetN哑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爪atargetN视espace二“http://ejb.tgb.com/version=1.0><xs:ele爪entn抓e二“addUsert扣e二“tns:addUser/><xs:ele爪entn抓e二“addUserKesponset抑e二“tns:addUserResponse/><x::ele爪entn抓e二“sayHellote二“tn:::ayHello/><xs:ele爪entn抓e二“sayHelloResponsete二“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义Te>,<xs:co呻le装Ten抓e二“user>,<xs:se叭ence><xs:ele爪ent爪inoccurs二“0n抓e二“address'te二“xs:string/><xs:ele爪entn砚e二“agete二“xs:int/><xs:ele爪entminoccurs二“0n抓e二“n抓et抑e二“装s:string/></xs:se明ence></xs:co呻lexTe>甲<xs:co帅lexTen观e二“addUserResponse><xs:se职ence/></xs:co帅lexTe>,<xs:co帅lexTen哑e二“sayHello>甲<xs:se职ence><xs:ele爪ent爪inoccurs二柑0n抓e二“argote二“xs:string/></又3:se明ence></xs:co帅lexTe>,<xs:co呻le装Ten抓e二“sayHelloResponse>,<xs:se叭ence><xs:ele爪ent址inoccurs二介0n哑e二介return布te二“xs:string/></xs:se叫ence></xs:co叩lexTe></xs:sche爪a><八ypes>

 

 


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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐