[发明专利]一种类装载隔离的方法及一种类装载隔离的装置有效

专利信息
申请号: 200710147634.X 申请日: 2007-08-31
公开(公告)号: CN101105757A 公开(公告)日: 2008-01-16
发明(设计)人: 张旭 申请(专利权)人: 金蝶软件(中国)有限公司
主分类号: G06F9/445 分类号: G06F9/445
代理公司: 北京集佳知识产权代理有限公司 代理人: 逯长明
地址: 518057广东省深圳市南*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 种类 装载 隔离 方法 装置
【说明书】:

技术领域

发明涉及Java的类装载隔离领域,特别涉及一种基于Java虚拟机的类装载隔离的方法及一种类装载隔离的装置。

背景技术

目前在Internet/Intranet/Extranet环境中,企业级应用系统大多采用三层或多层应用模式。为了方便开发、部署、运行和管理基于多层结构的应用,需要以网络和分布式计算的底层技术为基础,构建一个完整的应用框架,提供相应的支撑平台作为多层应用的基础设施,这一支撑平台的关键就是位于中间层的应用服务器。应用服务器是一个创建、部署、运行、集成和维护多层分布式企业级应用的平台。在企业应用中,应用服务器可以提供如下好处:(1)提高企业应用开发的有效性,保障业务逻辑和组件的重用性;(2)提高企业应用的性能,比如,高运行性能和响应时间、可伸缩性、可靠性等;(3)使企业应用更易于监控和管理,降低系统维护和升级成本。由于应用服务器的重要作用和关键地位,它已经成为当今业界的一个热点。

从某种角度而言,应用服务器本身是一个Java进程,而类装载是Java语言提供的最强大的机制之一。具体而言,一个类代表要执行的代码,而数据则表示其相关状态,状态时常改变,而代码则不会。将一个特定的状态与一个类相对应起来,也就意味着将一个类实例化;尽管相同的类对应的实例其状态千差万别,但其本质都对应着同一段代码。应用服务器自身的启动需要装载很多类文件,部署在应用服务器上的应用启动时也需要装载应用自身的类文件,Java的类装载模型是一种代理(delegation)模型。当Java虚拟机(Java Virtual Machine,JVM)要求类装载器(Class Loader)装载一个类时,类装载器首先将这个类装载请求转发给他的父装载器,而父装载器会依次逐级向上传递请求,直到类装载层次的顶部。如果顶部的类装载器不能完成类装载请求,它的子装载器将被调用来完成类装载。如果子装载器也不能装载类,请求会继续向下传递,直到一个类装载器完成这个请求。

通常情况下,应用服务器自身所需的类文件是在系统类路径中,部署在应用服务器应用所需的类文件将会出现在系统类路径之后,因此,如果应用服务器中和部署在应用服务器的应用中包含了相同命名空间的类文件,那么包含在应用服务器中的类文件将会被先加载,包含在应用中的类文件将无法被加载,如图1所示,假设应用服务器所需的类文件存在于System Class Loader,应用所需的类文件存在于应用的ClassLoader中,应用服务器和应用均具有相同命名空间的类文件A,当应用需要装载这个类文件A时,按照Java的类装载模型,如果这个类文件亦存在于应用的Class Loader的父装载器System Class Loader中,则会从System Class Loader装载所述类文件A,而不会从应用的Class Loader中去装载。假设应用的Class Loader中的类文件A是较高版本的类文件,而System Class Loader中的类文件A是较低版本的类文件,当前应用所需要加载的类文件实际上应当为应用的Class Loader中的较高版本的类文件A,然而,由于已装载了System Class Loader中的类文件A,则应用的Class Loader中的类文件A将无法被装载,从而导致系统出错,引发例如“类找不到”、“类未被定义”等类冲突问题。

现有技术中,只能通过由开发或维护人员手动删除发生具有相同命名空间的两个类文件其中的一个;或者,将所有需要加载的类文件都放在系统的类路径中,并手动调整顺序来避免这种类冲突问题。显然,这种手动处理方式的成本高,效率低,并且处理过程较为复杂。

因此,本领域技术人员迫切需要发展出一种可以简单、高效地解决类冲突的方法及系统。

发明内容

本发明所要解决的技术问题是提供一种类装载隔离的方法,用以解决现有技术中对于类冲突处理成本高、效率低,并且处理过程复杂的问题。

本发明还提供了一种类装载隔离的装置,用以保证上述方法在实际中的实现及应用。

为解决上述技术问题,本发明实施例公开了一种类装载隔离的方法,包括:

启动Java进程,在所述Java进程中创建自定义类装载器对象;

在所述自定义类装载器对象中添加类路径;

创建启动应用服务器线程对象,并为所述线程对象指定所述自定义类装载器对象;

启动所述应用服务器线程对象。

优选的是,所述的方法,还包括:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于金蝶软件(中国)有限公司,未经金蝶软件(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200710147634.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top