加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

带你走进EJB--将EJB发布为Webservice(1)

发布时间:2020-12-17 00:02:19 所属栏目:安全 来源:网络整理
导读:? ? ? ? ?? Web service 是一个平台独立 , 松耦合基于可编程的 web 的应用程序,可使用开放的 XML 标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。 ???????? 简单说 W eb service就是一个应用程序,它向外界暴露出一个

? ? ? ? ??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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读