[发明专利]一种服务调用方法、装置及系统有效
申请号: | 201610104991.7 | 申请日: | 2016-02-25 |
公开(公告)号: | CN105656929B | 公开(公告)日: | 2019-03-15 |
发明(设计)人: | 刘俊强;高隆林;韩峰;何忠胜;赵欣;李得亮 | 申请(专利权)人: | 山东中创软件工程股份有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 250014 山东省*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 服务 调用 方法 装置 系统 | ||
本申请公开了一种服务调用方法、装置及系统,方法包括:接收客户端发送的EJB服务调用请求,该请求中包含客户端在本地查询到的与待调用EJB服务对应的存根stub,并且stub携带有第一标识,进一步EJB服务器判断所述stub是否失效,如果是,则在预置的stub集合中查询与所述stub的第一标识相同的目标stub,调用与所述目标stub对应的EJB服务,并反馈给所述客户端。使用本申请方案,即便客户端按照单例模式进行EJB服务调用也不会出现由于EJB服务重部署而导致的客户端无法成功调用的问题。
技术领域
本申请涉及通信技术领域,更具体地说,涉及一种服务调用方法、装置及系统。
背景技术
EJB(Enterprise JavaBean)是J2EE(javaEE)的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。在J2EE里,Enterprise Java Beans(EJB)称为Java企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。
在EJB的架构应用中,客户端通过lookup方法在EJB服务器中获取EJB服务的存根stub并保存到客户端,客户端可以利用stub去EJB服务器调用对应的EJB服务。客户端通过lookup方法获取EJB服务的stub的过程有非单例方式和单例方式,在非单例模式下,客户端在每次调用EJB服务时都会执行lookup的过程,进而能够找到EJB服务的stub,成功调用EJB服务。在单例模式下,客户端第一次访问EJB服务时会执行lookup过程,但是后续客户端再次访问该EJB服务时则直接使用本地存储的stub去服务器调用EJB服务,而不会再次执行lookup过程。
对比可知,非单例模式相比于单例模式的执行效率低,因此用户偏向于使用单例模式。但是在单例模式下,如果EJB服务器中的EJB服务重部署了,则客户端中已有的stub将会失效,客户端再次使用存储的stub去调用EJB服务时将无法成功调用。
发明内容
有鉴于此,本申请提供了一种一种服务调用方法、装置及系统,用于解决现有客户端以单例模式进行EJB服务调用时,当EJB服务重部署后会导致客户端无法成功调用EJB服务的问题。
为了实现上述目的,现提出的方案如下:
一种服务调用方法,应用于EJB服务器,该方法包括:
接收客户端发送的EJB服务调用请求,所述EJB服务调用请求包含存根stub,所述stub携带有第一标识;
判断所述stub是否失效;
若是,则在预置的stub集合中获取与所述stub的第一标识相同的目标stub;
调用与所述目标stub对应的EJB服务,并反馈给所述客户端。
优选地,还包括:
在判断所述stub失效时,将所述目标stub反馈给所述客户端,以供所述客户端利用所述目标stub替换掉已有的相同第一标识的stub。
优选地,所述stub还携带有第二标识,所述判断所述stub是否失效,包括:
在预置的stub集合中查询与所述stub的第一标识相同的目标stub;
判断所述目标stub的第二标识与所述stub的第二标识是否相同;
若否,则确定所述stub已经失效,若是,则确定所述stub未失效。
优选地,所述判断所述stub是否失效,包括:
利用所述stub调用对应的EJB服务,并判断是否调用成功;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东中创软件工程股份有限公司,未经山东中创软件工程股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610104991.7/2.html,转载请声明来源钻瓜专利网。