CN110427224A - 一种ejb模块加载方法、装置、服务器及可读存储介质 - Google Patents

一种ejb模块加载方法、装置、服务器及可读存储介质 Download PDF

Info

Publication number
CN110427224A
CN110427224A CN201910635848.4A CN201910635848A CN110427224A CN 110427224 A CN110427224 A CN 110427224A CN 201910635848 A CN201910635848 A CN 201910635848A CN 110427224 A CN110427224 A CN 110427224A
Authority
CN
China
Prior art keywords
low layer
ejb module
classloader
ejb
rise
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910635848.4A
Other languages
English (en)
Other versions
CN110427224B (zh
Inventor
鲁国帅
高隆林
赵欣
韩锋
翟鲁超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CVIC Software Engineering Co Ltd
Original Assignee
CVIC Software Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CVIC Software Engineering Co Ltd filed Critical CVIC Software Engineering Co Ltd
Priority to CN201910635848.4A priority Critical patent/CN110427224B/zh
Publication of CN110427224A publication Critical patent/CN110427224A/zh
Application granted granted Critical
Publication of CN110427224B publication Critical patent/CN110427224B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种EJB模块加载方法,该方法先扫描高层EJB模块,并保存各个高层EJB模块路径;创建与标准目录对应的高层类加载器,并将高层类加载器的类路径设置为空;扫描自定义目录下的低层EJB模块,并保存各个低层EJB模块路径;创建与自定义目录对应的低层类加载器,并将各个高层EJB模块路径和各个低层EJB模块路径添加至低层类加载器的类路径中;在接收到调用请求时,利用低层类加载器加载与调用请求对应的目标EJB模块。该方法可实现高层和低层EJB模块间的相互调用,可保障应用程序正常运行,且能够兼容应用程序不同的开发形式。本发明还公开了一种EJB模块加载装置、服务器及可读存储介质,具有相应的技术效果。

Description

一种EJB模块加载方法、装置、服务器及可读存储介质
技术领域
本发明涉及类加载技术领域,特别是涉及一种EJB模块加载方法、装置、服务器及可读存储介质。
背景技术
企业级应用,即基于B/S结构的分布式企业信息系统,内部包含web应用模块,EJB(Enterprise JavaBean,即实现业务逻辑的组件,客户端软件通过网络调用EJB模块提供的服务以实现业务逻辑,而客户端软件的功能仅需负责发送调用请求和显示处理结果)应用模块等。Java类加载器负责动态加载Java类(EJB应用模块)到JVM的内存空间的运行部分。其中,Java为一门面向对象编程语言;JVM即Java虚拟机,在Java编译器和操作系统平台之间的虚拟处理器。
不同应用厂商在企业级应用开发过程中,应用中的EJB模块可能不会集中放置。例如,部分EJB模块放置于应用的APP-INF目录(即标准目录)下,部分EJB模块放置于应用的自定义目录下,而不同目录下的Java类加载器通常是不同的。由于Java类加载器实行父委托机制,高层次类加载器无法识别低层次类加载器所加载类。具体的,应用APP-INF目录所在类加载器层次要高于自定义目录类加载器层次,因此APP-INF目录下EJB模块在调用自定义目录下EJB模块时,会引起无法查找到类的问题。即,APP-INF目录下EJB模块无法调用自定义目录下EJB模块,因此需要调整EJB模块所在目录,才可正常调用。而调整EJB模块所在目录可能会引发应用的业务逻辑混乱,工程量较大且难以实现。
综上所述,如何有效地解决EJB模块间相互调用等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种EJB模块加载方法、装置、服务器及可读存储介质,可在企业级应用中实现不同层次间的EJB模块相互调用,可保障应用程序正常运行,且能够兼容应用程序不同的开发形式。
为解决上述技术问题,本发明提供如下技术方案:
一种EJB模块加载方法,包括:
扫描目标企业级应用中标准目录下的高层EJB模块,并保存各个高层EJB模块路径;
创建与所述标准目录对应的高层类加载器,并将所述高层类加载器的类路径设置为空;
扫描所述目标企业级应用中自定义目录下的低层EJB模块,并保存各个低层EJB模块路径;
创建与所述自定义目录对应的低层类加载器,并将各个所述高层EJB模块路径和各个所述低层EJB模块路径添加至所述低层类加载器的类路径中;
在接收到调用请求时,利用所述低层类加载器加载与所述调用请求对应的目标EJB模块。
优选地,所述在接收到调用请求时,利用所述低层类加载器加载与所述调用请求对应的目标EJB模块,包括:
接收并解析所述高层EJB模块的调用请求,确定待调用的所述目标低层EJB模块;
利用所述低层类加载器加载所述目标低层EJB模块。
优选地,利用所述低层类加载器加载所述目标低层EJB模块,包括:
所述低层类加载器请求所述高层类加载器加载所述目标低层EJB模块;
所述低层类加载器接收所述高层类加载器返回无法找到所述目标低层EJB模块的反馈信息;
所述低层类加载器加载所述目标低层EJB模块。
优选地,在接收到调用请求时,利用所述低层类加载器加载与所述调用请求对应的目标EJB模块,包括:
接收并解析第一高层EJB模块的调用请求,确定待调用的第二高层EJB模块;
利用所述低层类加载器加载所述第二高层EJB模块。
优选地,在接收到调用请求时,利用所述低层类加载器加载与所述调用请求对应的目标EJB模块,包括:
接收并解析所述低层EJB模块的调用请求,确定待调用的目标高层EJB模块;
利用所述低层类加载器加载所述目标高层EJB模块。
优选地,在接收到调用请求时,利用所述低层类加载器加载与所述调用请求对应的目标EJB模块,包括:
接收并解析第一低层EJB模块的调用请求,确定待调用的第二低层EJB模块;
利用所述低层类加载器加载所述第二低层EJB模块。
一种EJB模块加载装置,包括:
高层EJB模块路径获取单元,用于扫描目标企业级应用中标准目录下的高层EJB模块,并保存各个高层EJB模块路径;
高层类加载器创建单元,用于创建与所述标准目录对应的高层类加载器,并将所述高层类加载器的类路径设置为空;
低层EJB模块路径获取单元,用于扫描所述目标企业级应用中自定义目录下的低层EJB模块,并保存各个低层EJB模块路径;
低层类加载器创建单元,用于创建与所述自定义目录对应的低层类加载器,并将各个所述高层EJB模块路径和各个所述低层EJB模块路径添加至所述低层类加载器的类路径中;
EJB模块加载单元,用于在接收到调用请求时,利用所述低层类加载器加载与所述调用请求对应的目标EJB模块。
一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述EJB模块加载方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述EJB模块加载方法的步骤。
可见,考虑到现有的企业级应用在应用服务器上运行时,应用APP-INF目录与自定义目录类加载器层次不同,当两种目录下EJB模块调用不符合规范时,应用便会无法正常运行。又因Java类加载器实现父委托机制,在类装载器有载入类的需求时,会先请示其Parent即高层类加载器,使用其搜索路径帮忙载入,如果Parent找不到,可由该类加载器依照自己的搜索路径搜索类并完成加载。
因此,本方法中,首先扫描目标企业级应用中标准目录下的高层EJB模块,并保存各个高层EJB模块路径;然后,创建与标准目录对应的高层类加载器,并将高层类加载器的类路径设置为空;这里将高层类加载器的类路径设置为空之后,高层类加载器则无法自行完成EJB模块加载。扫描目标企业级应用中自定义目录下的低层EJB模块,并保存各个低层EJB模块路径;创建与自定义目录对应的低层类加载器,并将各个高层EJB模块路径和各个低层EJB模块路径添加至低层类加载器的类路径中;将高层EJB模块和低层EJB模块的路径均添加至低层次类加载器中,对于低层加载器而言,高层EJB模块和低层EJB模块均属于同一级且均可被低层加载器所加载。具体的,在接收到调用请求时,利用低层类加载器加载与调用请求对应的目标EJB模块。如此,便可在无需更换EJB模块的所属目录的情况下,即不影响应用的业务逻辑的情况下,实现高层和低层EJB模块之间的相互调用,可保障应用程序正常运行,且能够兼容应用程序不同的开发形式。
相应地,本发明实施例还提供了与上述EJB模块加载方法相对应的EJB模块加载装置、服务器和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种EJB模块加载方法的实施流程图;
图2为本发明实施例中一种EJB模块加载装置的结构示意图;
图3为本发明实施例中一种服务器的结构示意图;
图4为本发明实施例中一种服务器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
请参考图1,图1为本发明实施例中一种EJB模块加载方法的流程图,该方法可应用于企业级应用的服务器中,包括以下步骤:
S101、扫描目标企业级应用中标准目录下的高层EJB模块,并保存各个高层EJB模块路径。
其中,目标企业级应用可为任意一种企业级应用,在企业级应用中将业务逻辑打包为EJB模块,放置在服务器,以便客户端调用EJB模块实现业务逻辑,以降低客户端的业务复杂度。
其中标准目录即目标企业级应用的APP-INF目录。在对标准目录进行扫描,即确定标准目录下各个高层EJB模块以各个高层EJB模块的具体路径。其中,高层EJB模块即为标准目录下的EJB模块。
S102、创建与标准目录对应的高层类加载器,并将高层类加载器的类路径设置为空。
其中,高层类加载器即为与标准目录对应的加载器,特别地,在本发明实施例中为了实现高层EJB模块与低层EJB模块之间的相互调用,在创建高层加载器后,将高层加载器的类路径设置为空,即使得高层加载器无法加载标准目录下的高层EJB模块。
S103、扫描目标企业级应用中自定义目录下的低层EJB模块,并保存各个低层EJB模块路径。
其中,自定义目录即为各个生产厂商根据开发和维护的方便而设定的目录,相应地,该自定义目录中的低层EJB模块也为根据开发和维护的方便而进行添加的。需要说明的是,在本发明实施例中高层EJB模块与低层EJB模块之间,可将高层EJB模块视为父类,而将低层EJB模块视为子类。
需要说明的是,步骤S103的执行顺序与步骤S101-S102的顺序对实现EJB模块间相互调用并无影响,也就是说,还可先执行步骤S103,再执行步骤S101和步骤S102;当步骤S103与步骤S101-S102还可并行执行。在步骤S101、S102以及S103均执行完毕后,便可执行步骤S104的操作。
S104、创建与自定义目录对应的低层类加载器,并将各个高层EJB模块路径和各个低层EJB模块路径添加至低层类加载器的类路径中。
通常,低层类加载器即为加载自定义目录下的低层EJB模块的类加载器。需要说明的是,在低层类加载器的类路径中既添加了高层EJB模块路径又添加了低层EJB模块路径,且高层类加载器中类路径设置为空,因此,本发明实施例所提供的低层类加载器可加载高层EJB模块和低层EJB模块,且对应低层类加载器而言,高层EJB模块和低层EJB模块在逻辑等级上属于同一等级。因而可实现高层EJB模块和低层EJB模块之间的相互调用。可通过执行步骤S105,实现调用。
S105、在接收到调用请求时,利用低层类加载器加载与调用请求对应的目标EJB模块。
需要说明的是,在本发明实施例中调用请求可以为外部用户发送的请求,也可以为内部的EJB模块发送的调用请求。下面对实现EJB模块间的相互调用为例进行详细说明,关于外部用户发起的调用请求可参照与此,在此不再一一赘述。
由于高层EJB模块和低层EJB模块的具体路径仅添加至低层类加载器中,因而在本发明实施例中当需要进行类加载时,均可由低层类加载器完成加载。为便于说明,下面以不同的EJB模块之间的调用为例,进行详细说明。
情况一:高层EJB模块调用低层EJB模块
步骤一、接收并解析高层EJB模块的调用请求,确定待调用的目标低层EJB模块;
步骤二、利用低层类加载器加载目标低层EJB模块。
具体的,利用低层类加载器加载目标低层EJB模块,包括:
步骤1、低层类加载器请求高层类加载器加载目标低层EJB模块;
步骤2、低层类加载器接收高层类加载器返回无法找到目标低层EJB模块的反馈信息;
步骤3、低层类加载器加载目标低层EJB模块。
可见,在本发明实施例中,由于高层类加载器的类路径为空,当高层EJB模块需要调用目标低层EJB模块时,直接跳转至低层类加载器进行处理,而低层类加载器中既有高层EJB模块的路径信息,又有低层EJB模块的路径信息,因而可在高层EJB模块需要调用低层EJB模块时,加载低层EJB模块,使得高层EJB模块可调用低层EJB模块。其中,步骤一中的高层EJB模块可以为标准目录下的任意一个EJB模块,相应地,目标EJB模块也可为自定义目录下的任意一个或多个EJB模块。
情况二:高层EJB模块调用高层EJB模块
步骤一、接收并解析第一高层EJB模块的调用请求,确定待调用的第二高层EJB模块;
步骤二、利用低层类加载器加载第二高层EJB模块。
其中,第一高层EJB模块与第二高层EJB模块中的第一和第二仅用于区别被调用的高层EJB模块与调用发起者高层EJB模块非同一个EJB模块,而无其他限定含义。
由于高层加载器的类路径为空,因而高层类加载器无法继续完成高层EJB模块的加载工作,高层EJB模块的加载工作由低层类加载器完成。具体的类加载过程可参见上述情况一中加载目标低层EJB模块的具体实现过程。
情况三:低层EJB模块调用高层EJB模块
步骤一、接收并解析低层EJB模块的调用请求,确定待调用的目标高层EJB模块;
步骤二、利用低层类加载器加载目标高层EJB模块。
当低层EJB模块调用高层EJB模块时,仍然由低层类加载器加载目标高层EJB模块。其中,低层EJB模块可以为自定义目录下的任意一个EJB模块,目标高层EJB模块可以为标准目录下的任意一个或多个EJB模块。
情况四:低层EJB模块调用低层EJB模块
步骤一、接收并解析第一低层EJB模块的调用请求,确定待调用的第二低层EJB模块;
步骤二、利用低层类加载器加载第二低层EJB模块。
其中,第一低层EJB模块与第二低层EJB模块中的第一和第二仅用于区别被调用的低层EJB模块与调用发起者低层EJB模块非同一个EJB模块,而无其他限定含义。
低层EJB模块之间的调用,即低层EJB模块的加载与现有的低层EJB模块之间的加载过程可相互参照,在此不再一一赘述。
上述四种情况均由低层类加载器完成类加载,实现过程也可相互参照。在实际应用中,还存在其他类加载情况,也可参照与此,在此不再赘述。
本发明实施例所提供的方法,考虑到现有的企业级应用在应用服务器上运行时,应用APP-INF目录与自定义目录类加载器层次不同,当两种目录下EJB模块调用不符合规范时,应用便会无法正常运行。又因Java类加载器实现父委托机制,在类装载器有载入类的需求时,会先请示其Parent即高层类加载器,使用其搜索路径帮忙载入,如果Parent找不到,可由该类加载器依照自己的搜索路径搜索类并完成加载。
因此,本方法中,首先扫描目标企业级应用中标准目录下的高层EJB模块,并保存各个高层EJB模块路径;然后,创建与标准目录对应的高层类加载器,并将高层类加载器的类路径设置为空;这里将高层类加载器的类路径设置为空之后,高层类加载器则无法自行加载EJB模块。扫描目标企业级应用中自定义目录下的低层EJB模块,并保存各个低层EJB模块路径;创建与自定义目录对应的低层类加载器,并将各个高层EJB模块路径和各个低层EJB模块路径添加至低层类加载器的类路径中;将高层EJB模块和低层EJB模块的路径均添加至低层次类加载器中,对于低层加载器而言,高层EJB模块和低层EJB模块均属于同一级且均可被低层加载器所加载。具体的,在接收到调用请求时,利用低层类加载器加载与调用请求对应的目标EJB模块。如此,便可在无需更换EJB模块的所属目录的情况下,即不影响应用的业务逻辑的情况下,实现高层和低层EJB模块之间的相互调用,可保障应用程序正常运行,且能够兼容应用程序不同的开发形式。
实施例二:
相应于上面的方法实施例,本发明实施例还提供了一种EJB模块加载装置,下文描述的EJB模块加载装置与上文描述的EJB模块加载方法可相互对应参照。
参见图2所示,该装置包括以下单元:
高层EJB模块路径获取单元101,用于扫描目标企业级应用中标准目录下的高层EJB模块,并保存各个高层EJB模块路径;
高层类加载器创建单元102,用于创建与标准目录对应的高层类加载器,并将高层类加载器的类路径设置为空;
低层EJB模块路径获取单元103,用于扫描目标企业级应用中自定义目录下的低层EJB模块,并保存各个低层EJB模块路径;
低层类加载器创建单元104,用于创建与自定义目录对应的低层类加载器,并将各个高层EJB模块路径和各个低层EJB模块路径添加至低层类加载器的类路径中;
EJB模块加载单元105,用于在接收到调用请求时,利用低层类加载器加载与调用请求对应的目标EJB模块。
应用本发明实施例所提供的装置,考虑了现有的企业级应用在应用服务器上运行时,应用APP-INF目录与自定义目录类加载器层次不同,当两种目录下EJB模块调用不符合规范时,应用便会无法正常运行。又因Java类加载器实现父委托机制,在类装载器有载入类的需求时,会先请示其Parent即高层类加载器,使用其搜索路径帮忙载入,如果Parent找不到,可由该类加载器依照自己的搜索路径搜索类并完成加载。
因此,本装置中,首先扫描目标企业级应用中标准目录下的高层EJB模块,并保存各个高层EJB模块路径;然后,创建与标准目录对应的高层类加载器,并将高层类加载器的类路径设置为空;这里将高层类加载器的类路径设置为空之后,高层类加载器则无法自行完成EJB模块加载。扫描目标企业级应用中自定义目录下的低层EJB模块,并保存各个低层EJB模块路径;创建与自定义目录对应的低层类加载器,并将各个高层EJB模块路径和各个低层EJB模块路径添加至低层类加载器的类路径中;将高层EJB模块和低层EJB模块的路径均添加至低层次类加载器中,对于低层加载器而言,高层EJB模块和低层EJB模块均属于同一级且均可被低层加载器所加载。具体的,在接收到调用请求时,利用低层类加载器加载与调用请求对应的目标EJB模块。如此,便可在无需更换EJB模块的所属目录的情况下,即不影响应用的业务逻辑的情况下,实现高层和低层EJB模块之间的相互调用,可保障应用程序正常运行,且能够兼容应用程序不同的开发形式。
在本发明的一种具体实施方式中,EJB模块加载单元105,具体用于接收并解析高层EJB模块的调用请求,确定待调用的目标低层EJB模块;利用低层类加载器加载目标低层EJB模块。
在本发明的一种具体实施方式中,EJB模块加载单元105,具体用于低层类加载器请求高层类加载器加载目标低层EJB模块;低层类加载器接收高层类加载器返回无法找到目标低层EJB模块的反馈信息;
低层类加载器加载目标低层EJB模块。
在本发明的一种具体实施方式中,EJB模块加载单元105,具体用于接收并解析第一高层EJB模块的调用请求,确定待调用的第二高层EJB模块;利用低层类加载器加载第二高层EJB模块。
在本发明的一种具体实施方式中,EJB模块加载单元105,具体用于接收并解析低层EJB模块的调用请求,确定待调用的目标高层EJB模块;利用低层类加载器加载目标高层EJB模块。
在本发明的一种具体实施方式中,EJB模块加载单元105,具体用于接收并解析第一低层EJB模块的调用请求,确定待调用的第二低层EJB模块;利用低层类加载器加载第二低层EJB模块。
实施例三:
相应于上面的方法实施例,本发明实施例还提供了一种服务器,下文描述的一种服务器与上文描述的一种EJB模块加载方法可相互对应参照。
参见图3所示,该服务器包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例的EJB模块加载方法的步骤。
具体的,请参考图4,图4为本实施例提供的一种服务器的具体结构示意图,该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在服务器301上执行存储介质330中的一系列指令操作。
服务器301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
上文所描述的EJB模块加载方法中的步骤可以由服务器的结构实现。
实施例四:
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种EJB模块加载方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的EJB模块加载方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

Claims (9)

1.一种EJB模块加载方法,其特征在于,包括:
扫描目标企业级应用中标准目录下的高层EJB模块,并保存各个高层EJB模块路径;
创建与所述标准目录对应的高层类加载器,并将所述高层类加载器的类路径设置为空;
扫描所述目标企业级应用中自定义目录下的低层EJB模块,并保存各个低层EJB模块路径;
创建与所述自定义目录对应的低层类加载器,并将各个所述高层EJB模块路径和各个所述低层EJB模块路径添加至所述低层类加载器的类路径中;
在接收到调用请求时,利用所述低层类加载器加载与所述调用请求对应的目标EJB模块。
2.根据权利要求1所述的EJB模块加载方法,其特征在于,所述在接收到调用请求时,利用所述低层类加载器加载与所述调用请求对应的目标EJB模块,包括:
接收并解析所述高层EJB模块的调用请求,确定待调用的所述目标低层EJB模块;
利用所述低层类加载器加载所述目标低层EJB模块。
3.根据权利要求2所述的EJB模块加载方法,其特征在于,利用所述低层类加载器加载所述目标低层EJB模块,包括:
所述低层类加载器请求所述高层类加载器加载所述目标低层EJB模块;
所述低层类加载器接收所述高层类加载器返回无法找到所述目标低层EJB模块的反馈信息;
所述低层类加载器加载所述目标低层EJB模块。
4.根据权利要求1所述的EJB模块加载方法,其特征在于,在接收到调用请求时,利用所述低层类加载器加载与所述调用请求对应的目标EJB模块,包括:
接收并解析第一高层EJB模块的调用请求,确定待调用的第二高层EJB模块;
利用所述低层类加载器加载所述第二高层EJB模块。
5.根据权利要求1至4任一项所述的EJB模块加载方法,其特征在于,在接收到调用请求时,利用所述低层类加载器加载与所述调用请求对应的目标EJB模块,包括:
接收并解析所述低层EJB模块的调用请求,确定待调用的目标高层EJB模块;
利用所述低层类加载器加载所述目标高层EJB模块。
6.根据权利要求5所述的EJB模块加载方法,其特征在于,在接收到调用请求时,利用所述低层类加载器加载与所述调用请求对应的目标EJB模块,包括:
接收并解析第一低层EJB模块的调用请求,确定待调用的第二低层EJB模块;
利用所述低层类加载器加载所述第二低层EJB模块。
7.一种EJB模块加载装置,其特征在于,包括:
高层EJB模块路径获取单元,用于扫描目标企业级应用中标准目录下的高层EJB模块,并保存各个高层EJB模块路径;
高层类加载器创建单元,用于创建与所述标准目录对应的高层类加载器,并将所述高层类加载器的类路径设置为空;
低层EJB模块路径获取单元,用于扫描所述目标企业级应用中自定义目录下的低层EJB模块,并保存各个低层EJB模块路径;
低层类加载器创建单元,用于创建与所述自定义目录对应的低层类加载器,并将各个所述高层EJB模块路径和各个所述低层EJB模块路径添加至所述低层类加载器的类路径中;
EJB模块加载单元,用于在接收到调用请求时,利用所述低层类加载器加载与所述调用请求对应的目标EJB模块。
8.一种服务器,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述EJB模块加载方法的步骤。
9.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述EJB模块加载方法的步骤。
CN201910635848.4A 2019-07-15 2019-07-15 一种ejb模块加载方法、装置、服务器及可读存储介质 Active CN110427224B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910635848.4A CN110427224B (zh) 2019-07-15 2019-07-15 一种ejb模块加载方法、装置、服务器及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910635848.4A CN110427224B (zh) 2019-07-15 2019-07-15 一种ejb模块加载方法、装置、服务器及可读存储介质

Publications (2)

Publication Number Publication Date
CN110427224A true CN110427224A (zh) 2019-11-08
CN110427224B CN110427224B (zh) 2022-04-08

Family

ID=68410655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910635848.4A Active CN110427224B (zh) 2019-07-15 2019-07-15 一种ejb模块加载方法、装置、服务器及可读存储介质

Country Status (1)

Country Link
CN (1) CN110427224B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030177484A1 (en) * 2002-03-15 2003-09-18 Bosschaert Allaert J. D. Firewall class loader
US20040172404A1 (en) * 2003-02-28 2004-09-02 Bea Systems, Inc. System and method for EJB classloading
US20080127155A1 (en) * 2006-09-14 2008-05-29 Abdelhadi Sanaa F Preventing an incompatible class exception caused by incompatible class loaders
US20080271002A1 (en) * 2007-04-30 2008-10-30 Bea Systems, Inc. System and method for providing a filtering classloader in a computer environment
CN102929597A (zh) * 2012-09-24 2013-02-13 摩卡软件(天津)有限公司 一种基于Java平台的Web业务支持方法和装置
CN105045642A (zh) * 2015-08-31 2015-11-11 北京金山安全软件有限公司 一种自定义类的加载方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030177484A1 (en) * 2002-03-15 2003-09-18 Bosschaert Allaert J. D. Firewall class loader
US20040172404A1 (en) * 2003-02-28 2004-09-02 Bea Systems, Inc. System and method for EJB classloading
US20080127155A1 (en) * 2006-09-14 2008-05-29 Abdelhadi Sanaa F Preventing an incompatible class exception caused by incompatible class loaders
US20080271002A1 (en) * 2007-04-30 2008-10-30 Bea Systems, Inc. System and method for providing a filtering classloader in a computer environment
CN102929597A (zh) * 2012-09-24 2013-02-13 摩卡软件(天津)有限公司 一种基于Java平台的Web业务支持方法和装置
CN105045642A (zh) * 2015-08-31 2015-11-11 北京金山安全软件有限公司 一种自定义类的加载方法及装置

Also Published As

Publication number Publication date
CN110427224B (zh) 2022-04-08

Similar Documents

Publication Publication Date Title
US7165108B2 (en) Method and apparatus for providing application specific strategies to a JAVA platform including load balancing policies
CN1256666C (zh) 无线设备上系统服务的动态下载和执行
CN107203419A (zh) 应用程序中的模块间调用方法、装置及系统
CN111352653B (zh) 基于PaaS云平台服务器的系统开发方法及服务器
CN111880936A (zh) 资源调度方法、装置、容器集群、计算机设备和存储介质
KR20080038350A (ko) 컴포넌트 아키텍처
CN108363612A (zh) 基于类装载器实现的j2ee模块热部署及调用信息统计方法
US6922796B1 (en) Method and apparatus for performing failure recovery in a Java platform
CN112511596A (zh) 一种云平台中创建云资源的方法和设备
CN114638017A (zh) 一种隐私计算算法跨平台系统及迁移方法
CN109412826B (zh) Sdon架构模型优化方法、装置、系统及计算机可读存储介质
CN115248692A (zh) 一种支持多种深度学习框架模型云端部署的装置及方法
US8752061B2 (en) Resource allocation within multiple resource providers based on the incoming resource request and the expected state transition of the resource requesting application, and selecting a resource provider based on the sum of the percentage of the resource provider currently used, the requesting load as a percentage of the resource provider's total resource, and the additional load imposed by the expected state of the requesting application as a percentage of the resource provider's total resource
CN117435324B (zh) 基于容器化的任务调度方法
CN112732677B (zh) 区块链节点部署方法、装置、设备及存储介质
CN113382077A (zh) 微服务调度方法、装置、计算机设备和存储介质
WO2002075541A9 (en) Method and apparatus for providing application specific strategies to a java platform including start and stop policies
CN110427224A (zh) 一种ejb模块加载方法、装置、服务器及可读存储介质
JP2006107197A (ja) メモリ制御方法およびプログラムならびに端末装置
CN111737964B (zh) 表格动态处理方法、设备及介质
CN110599112A (zh) 一种网络页面开发、维护方法和装置
CN114546648A (zh) 任务处理方法及任务处理平台
CN108319420A (zh) 一种图片加载方法及装置
CN114428691A (zh) 应用调用方法、装置、电子设备和计算机可读存储介质
CN113886063A (zh) 一种资源分配方法、系统、设备以及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant