一种EJB调用参数传递方法及相关装置制造方法及图纸

技术编号:19593018 阅读:23 留言:0更新日期:2018-11-28 04:45
本发明专利技术公开了一种EJB调用参数传递方法、系统、装置及计算机可读存储介质,其中可以在确定待传递参数为远程调用方式时,利用兼容方法实现待传递参数的传递,即首先对待传递参数以值方式进行传递,并判断是否失败,当失败时,判断对应该待传递参数是否预先设置了对应的JVM兼容参数,如果设置了,则说明该待传递参数需要以引用方式进行传递,则将待传递参数通过引用方式传递。因此,在参数传递过程中只需要中间件产品对待传递参数进行判断,就可以将其利用值传递或者引用方式传递,实现了参数传递的兼容性,且不需要更改应用程序的配置,方便了值传递过程,进而方便了中间件的迁移过程。

【技术实现步骤摘要】
一种EJB调用参数传递方法及相关装置
本专利技术涉及中间件
,更具体地说,涉及一种EJB调用参数传递方法、系统、装置及计算机可读存储介质。
技术介绍
在国产化大潮下,基础中间件应用服务器在逐步替换国际产品,在中间件替换过程中,会出现很多应用迁移问题,比如原有的老业务系统,采用EJB技术实现业务,在应用迁移到国产中间件的过程中,在同一JVM调用Remote接口时出现对象不能序列化的异常。EJB应用可以发布为远程调用和本地调用。当客户端与服务端的EJB对象在同一个JVM进程中,就是本地调用,需要用@Local注解声明,此时参数可通过引用进行传递。当客户端与服务端的EJB对象不在同一个JVM进程中,就是远程调用,需要用@Remote声明。当然,如果EJB对象声明成@Remote,则客户端和EJB是否在同一个JVM进程中,都会以远程调用方式进行访问,且参数通过传值方式进行传递,如果参数是对象,则需要进行序列化;如果参数需要传引用则可通过修改应用系统的配置文件,增加参数。有时,由于应用系统业务需求,在同一JVM进程中声明为@Remote接口EJB存在以下问题:1)参数对象以值方式进行传递时,当参数是对象时,需对对象进行序列化。但有些第三方的类不能进行序列化,如Native方法、实现finalize()方法的类不能进行序列化,导致应用系统不能正常使用。2)通过传引用的方式解决上述问题,但由于需要调整应用系统的配置,可能会影响其他业务功能点的正常使用。因此,如何实现传值方式和传引用方式的兼容,是本领域技术人员需要解决的问题。
技术实现思路
本专利技术的目的在于提供一种EJB调用参数传递方法、系统、装置及计算机可读存储介质,以实现传值方式和传引用方式的兼容。为实现上述目的,本专利技术实施例提供了如下技术方案:一种EJB调用参数传递方法,包括:确定待传递参数对应的传递方式是否为远程调用方式;若是,则判断将所述待传递参数以值方式进行传递是否失败;若是,则判断是否预置有对应所述待传递参数的JVM兼容参数;若是,则将所述待传递参数以引用方式进行传递。其中,所述判断将所述待传递参数以值方式进行传递是否失败,包括:判断将所述待传递参数以值方式进行传递是否抛出异常。其中,所述判断将所述待传递参数以值方式进行传递是否失败,包括:判断所述待传递参数是否存在未进行序列化的对象。其中,所述判断将所述待传递参数以值方式进行传递是否失败,包括:判断所述待传递参数的对象类中是否包括finalize()方法或native修饰的方法。其中,所述判断是否预置有对应所述待传递参数的JVM兼容参数之后,还包括:若否,则抛出相应的异常。为解决上述技术问题,本申请还提供了一种EJB调用参数传递系统,其特征在于,包括:确定模块,用于确定待传递参数对应的传递方式是否为远程调用方式;第一判断模块,用于当所述待传递参数对应的传递方式是远程调用方式时,判断将所述待传递参数以值方式进行传递是否失败;第二判断模块,用于当所述待传递参数以值方式进行传递失败时,判断是否预置有对应所述待传递参数的JVM兼容参数;传递模块,用于预置由对应所述待传递参数的JVM兼容参数时,将所述待传递参数以引用方式进行传递。其中,所述第一判断模块,具体用于:当所述待传递参数对应的传递方式是远程调用方式时,判断所述待传递参数是否存在未进行序列化的对象。其中,所述第一判断模块,具体用于:当所述待传递参数对应的传递方式是远程调用方式时,判断所述待传递参数的对象类中是否包括finalize()方法或native修饰的方法。为解决上述技术问题,本申请还一种EJB调用参数传递装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如所述EJB调用参数传递方法的步骤。为解决上述技术问题,本申请还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述EJB调用参数传递方法的步骤。通过以上方案可知,本专利技术实施例提供的一种EJB调用参数传递方法,包括:确定待传递参数对应的传递方式是否为远程调用方式;若是,则判断将所述待传递参数以值方式进行传递是否失败;若是,则判断是否预置有对应所述待传递参数的JVM兼容参数;若是,则将所述待传递参数以引用方式进行传递。由此可见,本申请提供的一种EJB调用参数传递方法,可以在确定待传递参数为远程调用方式时,利用兼容方法实现待传递参数的传递,即首先对待传递参数以值方式进行传递,并判断是否失败,当失败时,判断对应该待传递参数是否预先设置了对应的JVM兼容参数,如果设置了,则说明该待传递参数需要以引用方式进行传递,则将待传递参数通过引用方式传递。因此,在参数传递过程中只需要中间件产品对待传递参数进行判断,就可以将其利用值传递或者引用方式传递,实现了参数传递的兼容性,且不需要更改应用程序的配置,方便了值传递过程,进而方便了中间件的迁移过程。本申请还提供了一种EJB调用参数传递系统、装置及计算机可读存储介质,同样可以实现上述技术效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例公开的一种EJB调用参数传递方法流程图;图2为本专利技术实施例公开的一种EJB调用参数传递系统结构示意图;图3为本专利技术实施例公开的一种EJB调用参数传递装置结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例公开了一种EJB调用参数传递方法、系统、装置及计算机可读存储介质,以实现传值方式和传引用方式的兼容。参见图1,本专利技术实施例提供的一种EJB调用参数传递方法,具体包括:S101,确定待传递参数对应的传递方式是否为远程调用方式。需要说明的是,EJB应用可以发布为远程调用和本地调用,当客户端与服务器端的EJB对象在同一个JVM进程中,就是本地调用,需要用@Local注解声明,此时参数可以通过引用进行传递。当客户端与服务端的EJB对象不再同一个JVM进程中,就是远程调用,需要用@Remote声明,此时参数会以远程调用方式进行访问,且参数通过传值方式进行传递。在本方案中,首先确定待传递参数对应的传递方式是否为远程调用方式,也就是判断是否为@Remote接口。S102,若是,则判断将所述待传递参数以值方式进行传递是否失败。具体地,当确定待传递参数的传递方式是远程调用方式后,首先将该待传递参数以值方式进行传递,并判断是否传递失败,若没有失败,证明传递成功,完成该待传递参数的传递,若失败了则需要进行S103。需要说明的是,本申请实施例中,判断所述待传递参数以值方式进行传递是否失败可以检测在进行以值方式传递所述待传递参数时,是否抛出与该动作对应的异常进行判断。抛出异常可以确定对本文档来自技高网...

【技术保护点】
1.一种EJB调用参数传递方法,其特征在于,包括:确定待传递参数对应的传递方式是否为远程调用方式;若是,则判断将所述待传递参数以值方式进行传递是否失败;若是,则判断是否预置有对应所述待传递参数的JVM兼容参数;若是,则将所述待传递参数以引用方式进行传递。

【技术特征摘要】
1.一种EJB调用参数传递方法,其特征在于,包括:确定待传递参数对应的传递方式是否为远程调用方式;若是,则判断将所述待传递参数以值方式进行传递是否失败;若是,则判断是否预置有对应所述待传递参数的JVM兼容参数;若是,则将所述待传递参数以引用方式进行传递。2.根据权利要求1所述的方法,其特征在于,所述判断将所述待传递参数以值方式进行传递是否失败,包括:判断将所述待传递参数以值方式进行传递是否抛出异常。3.根据权利要求1所述的方法,其特征在于,所述判断将所述待传递参数以值方式进行传递是否失败,包括:判断所述待传递参数是否存在未进行序列化的对象。4.根据权利要求1所述的方法,其特征在于,所述判断将所述待传递参数以值方式进行传递是否失败,包括:判断所述待传递参数的对象类中是否包括finalize()方法或native修饰的方法。5.根据权利要求1所述的方法,其特征在于,所述判断是否预置有对应所述待传递参数的JVM兼容参数之后,还包括:若否,则抛出相应的异常。6.一种EJB调用参数传递系统,其特征在于,包括:确定模块,用于确定待传递参数对应的传递方式是否为远程调用方式;第一判断模块,用于当所述...

【专利技术属性】
技术研发人员:杨传艳温尚卓高隆林赵欣翟鲁超
申请(专利权)人:山东中创软件商用中间件股份有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1