JavaEE应用类加载冲突分析方法和装置的制造方法_2

文档序号:8380809阅读:来源:国知局
E应用类加载冲突分析装置,所述装置包括类加载器管理单元41和类加载冲突分析单元42。
[0035]其中,所述类加载器管理单元41,用于获取待分析应用对应的类加载器链;
所述类加载冲突分析单元42,用于基于所述类加载器链,对所述待分析应用的所有非重复类文件进行冲突分析,以确定潜在的冲突类。
[0036]本发明实施例提供的JavaEE应用类加载冲突分析装置,获取待分析应用对应的类加载器链;基于所述类加载器链,对所述待分析应用的所有非重复类文件进行冲突分析,以确定潜在的冲突类。与现有技术相比,其能够基于所述类加载器链,实现对JavaEE应用程序运行中加载的类文件进行全面地分析,以便于及时发现潜在的冲突类,进而避免了不必要的应用程序运行错误,提高了应用程序运行的稳定性。
[0037]如图5所示,本发明实施例提供一种JavaEE应用类加载冲突分析装置,所述装置包括类加载器管理单元51、中心控制单元52、文件处理单元53、以及类加载冲突分析单元54。
[0038]所述类加载器管理单元51,用于获取待分析应用对应的类加载器链。
[0039]具体地,若所述待分析应用为已部署应用,则所述类加载器管理单元51,用于当所述待分析应用为已部署应用时根据所述待分析应用的名称获取对应的应用类加载器;基于所述应用类加载器获取所述待分析应用对应的类加载器链。
[0040]若所述待分析应用为为部署应用,则所述类加载器管理单元51,用于当所述待分析应用为未部署应用时为所述待分析应用创建应用类加载器;根据所述待分析应用的物理地址获取所述待分析应用包含的所有类文件,并将所述所有类文件添加到所述创建的应用类加载器的类加载路径中;根据JavaEE服务器提供的接口获取公共类加载器,并设置所述创建的应用类加载器的父类加载器为所述公共类加载器,以获取所述获取待分析应用对应的类加载器链。
[0041]其中,所述公共类加载为所述JavaEE服务器中所有已部署应用的父加载器。
[0042]所述中心控制单元52,用于协调所述类加载器管理单元51、所述文件处理单元53以及所述类路径检查单元54进行类加载冲突分析,并整理分析结果以及将所述分析结果返回给调用者。
[0043]其中,所述分析结果包括潜在的冲突类和相应的冲突信息。
[0044]所述文件处理单元53,用于解析所述类加载器链,以获取所述类加载器链上所有类加载器的类加载路径和所述类加载路径中所包含的类文件;以及对所述类加载路径中所包含的类文件进行去重处理,以得到所述待分析应用包含的所有非重复类文件。
[0045]具体地,当所述类加载路径中为文件夹时,所述文件处理单元53以递归方式获取所述类加载路径中所包含类文件;当所述类加载路径中为jar文件时所述文件处理单元53以解压方式获取所述类加载路径中所包含的类文件。
[0046]所述类加载冲突分析单元54,用于针对所述所有非重复类文件,在所述类加载器链中所有类加载器的类加载路径中进行查找操作,以得到所述潜在的冲突类和相应的冲突信息,并对所述潜在的冲突类进行标记。
[0047]其中,所述冲突类为可以在至少两个类加载路径中查找到的非重复类文件,所述冲突信息包括所述冲突类可以被哪些类加载器加载以及所述冲突类可以从哪些类文件中加载。
[0048]本发明实施例提供的JavaEE应用类加载冲突分析装置是基于一条类加载器链,对待分析应用包含的所有非重复类文件进行类加载冲突分析,以确定潜在的冲突类。与现有技术相比,其能够基于所述类加载器链,实现对JavaEE应用程序运行中加载的类文件进行全面地分析,以便于及时发现潜在的冲突类,进而避免了不必要的应用程序运行错误,提高了应用程序运行的稳定性。
[0049]另外,本发明实施例对于已部署应用和未部署应用采用统一的处理方式,从而简化了具体实施的复杂性。
[0050]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0051]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
【主权项】
1.一种JavaEE应用类加载冲突分析方法,其特征在于,所述方法包括: 获取待分析应用对应的类加载器链; 基于所述类加载器链,对所述待分析应用的所有非重复类文件进行冲突分析,以确定潜在的冲突类。
2.根据权利要求1所述的方法,其特征在于,若所述待分析应用为已部署应用,则所述获取待分析应用对应的类加载器链包括: 根据所述待分析应用的名称获取对应的应用类加载器; 基于所述应用类加载器获取所述待分析应用对应的类加载器链。
3.根据权利要求1所述的方法,其特征在于,若所述待分析应用为未部署应用,则所述获取待分析应用对应的类加载器链包括: 为所述待分析应用创建应用类加载器; 根据所述待分析应用的物理地址获取所述待分析应用包含的所有类文件,并将所述所有类文件添加到所述创建的应用类加载器的类加载路径中; 根据JavaEE服务器提供的接口获取公共类加载器,并设置所述创建的应用类加载器的父类加载器为所述公共类加载器,以获取所述获取待分析应用对应的类加载器链,其中,所述公共类加载器为所述JavaEE服务器中所有已部署应用的父加载器。
4.根据权利要求1所述的方法,其特征在于,在所述基于所述类加载器链,对所述待分析应用的所有非重复类文件进行冲突分析,以确定潜在的冲突类之前,还包括: 解析所述类加载器链,以获取所述类加载器链上所有类加载器的类加载路径和所述类加载路径中所包含的类文件; 对所述类加载路径中所包含的类文件进行去重处理,以得到所述待分析应用包含的所有非重复类文件。
5.根据权利要求4所述的方法,其特征在于,所述获取所述类加载路径中所包含的类文件包括: 若所述类加载路径中为文件夹,则以递归方式获取所述类加载路径中所包含的类文件; 若所述类加载路径中为jar文件,则以解压方式获取所述类加载路径中所包含的类文件。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述基于所述类加载器链,对所述待分析应用的所有非重复类文件进行冲突分析,以确定潜在的冲突类包括: 针对所述所有非重复类文件,在所述类加载器链中所有类加载器的类加载路径中进行查找操作,以得到所述潜在的冲突类和相应的冲突信息,并对所述潜在的冲突类进行标记;其中,所述冲突类为可以在至少两个类加载路径中查找到的非重复类文件,所述冲突信息包括所述冲突类可以被哪些类加载器加载以及所述冲突类可以从哪些类文件中加载。
7.—种JavaEE应用类加载冲突分析装置,其特征在于,所述装置包括类加载器管理单元、类加载冲突分析单元,其中, 所述类加载器管理单元,用于获取待分析应用对应的类加载器链; 所述类加载冲突分析单元,用于基于所述类加载器链,对所述待分析应用的所有非重复类文件进行冲突分析,以确定潜在的冲突类。
8.根据权利要求7所述的装置,其特征在于,所述类加载器管理单元,用于当所述待分析应用为已部署应用时根据所述待分析应用的名称获取对应的应用类加载器;基于所述应用类加载器获取所述待分析应用对应的类加载器链。
9.根据权利要求7所述的装置,其特征在于,所述类加载器管理单元,用于当所述待分析应用为未部署应用时为所述待分析应用创建应用类加载器;根据所述待分析应用的物理地址获取所述待分析应用包含的所有类文件,并将所述所有类文件添加到所述创建的应用类加载器的类加载路径中;根据JavaEE服务器提供的接口获取公共类加载器,并设置所述创建的应用类加载器的父类加载器为所述公共类加载器,以获取所述获取待分析应用对应的类加载器链,其中,所述公共类加载器为所述JavaEE服务器中所有已部署应用的父加载器。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括文件处理单元,其中,所述文件处理单元,文件处理单元,用于解析所述类加载器链,以获取所述类加载器链上所有类加载器的类加载路径和所述类加载路径中所包含的类文件;对所述类加载路径中所包含的类文件进行去重处理,以得到所述待分析应用包含的所有非重复类文件。
11.根据权利要求10所述的装置,其特征在于,所述文件处理单元,用于当所述类加载路径中为文件夹时以递归方式获取所述类加载路径中所包含类文件;当所述类加载路径中为jar文件时以解压方式获取所述类加载路径中所包含的类文件。
12.根据权利要求7至11任一项所述的装置,其特征在于,所述类加载冲突分析单元,用于针对所述所有非重复类文件,在所述类加载器链中所有类加载器的类加载路径中进行查找操作,以得到所述潜在的冲突类和相应的冲突信息,并对所述潜在的冲突类进行标记,其中,所述冲突类为可以在至少两个类加载路径中查找到的非重复类文件,所述冲突信息包括所述冲突类可以被哪些类加载器加载以及所述冲突类可以从哪些类文件中加载。
【专利摘要】本发明实施例公开了一种JavaEE应用类加载冲突分析方法及装置,涉及计算机应用技术领域,解决了现有的JavaEE应用类加载机制存在潜在的类加载冲突风险以及难以定位潜在的冲突类的缺陷。本发明的一种JavaEE应用类加载冲突分析方法包括:获取待分析应用对应的类加载器链;基于所述类加载器链,对所述待分析应用的所有非重复类文件进行冲突分析,以确定潜在的冲突类。
【IPC分类】G06F11-00, G06F9-445
【公开号】CN104699547
【申请号】CN201510121221
【发明人】王鹏亮
【申请人】北京东方通科技股份有限公司
【公开日】2015年6月10日
【申请日】2015年3月19日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1