CN101105749A - 一种获取应用服务器中类装载信息的方法 - Google Patents

一种获取应用服务器中类装载信息的方法 Download PDF

Info

Publication number
CN101105749A
CN101105749A CNA2007101439730A CN200710143973A CN101105749A CN 101105749 A CN101105749 A CN 101105749A CN A2007101439730 A CNA2007101439730 A CN A2007101439730A CN 200710143973 A CN200710143973 A CN 200710143973A CN 101105749 A CN101105749 A CN 101105749A
Authority
CN
China
Prior art keywords
class
loaders
application server
class loaders
information
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
CNA2007101439730A
Other languages
English (en)
Other versions
CN100595732C (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.)
Shenzhen Kingdee Tianyanyun Computing Co ltd
Original Assignee
Kingdee Software China 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 Kingdee Software China Co Ltd filed Critical Kingdee Software China Co Ltd
Priority to CN200710143973A priority Critical patent/CN100595732C/zh
Publication of CN101105749A publication Critical patent/CN101105749A/zh
Application granted granted Critical
Publication of CN100595732C publication Critical patent/CN100595732C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供了一种获取应用服务器中类装载信息的方法,包括:在应用服务器启动时,向类装载器注册侦听器;在应用服务器运行,实例化类装载器时,激活所述注册的侦听器;所述侦听器接受所述触发并响应;所述侦听器保存类装载器实例引用,通过简单的客户端/本地调用即可获取应用服务器内部类装载信息,减少了排错、调试的工作量,降低应用服务器的维护成本。

Description

一种获取应用服务器中类装载信息的方法
技术领域
本发明涉及应用服务器领域,特别是涉及一种获取应用服务器中类装载信息的方法。
背景技术
目前在Internet/Intranet/Extranet环境中,企业级应用系统大多采用三层或多层应用模式。为了方便开发、部署、运行和管理基于多层结构的应用,需要以网络和分布式计算的底层技术为基础,构建一个完整的应用框架,提供相应的支撑平台作为多层应用的基础设施,这一支撑平台的关键就是位于中间层的应用服务器。应用服务器是一个创建、部署、运行、集成和维护多层分布式企业级应用的平台。在企业应用中,应用服务器可以提供如下好处:提高企业应用开发的有效性,保障业务逻辑和组件的重用性;提高企业应用的性能,如高运行性能和响应时间、可伸缩性、可靠性等;使企业应用更易于监控和管理,降低系统维护和升级成本。由于应用服务器的重要作用和关键地位,它已经成为当今业界的一个热点。
类装载是java语言提供的最强大的机制之一,一个类代表要执行的代码,而数据则表示其相关状态。状态时常改变,而代码则不会。当我们将一个特定的状态与一个类相对应起来,也就意味着将一个类事例化。尽管相同的类对应的实例其状态千差万别,但其本质都对应着同一段代码。一旦一个类被载入Java虚拟机(Java Virtual Machine,JVM)中,同一个类就不会被再次载入了。应用服务器自身的启动需要装载很多类文件(class),部署在应用服务器上的应用启动时也需要装载应用自身的类文件。JAVA的类装载机制是在同一个JVM中,按类路径的层次和顺序装载类文件,并且同一个类装载器(classloader)对同一个类只能够装载一次,classloader存在父子关系,同一个类文件可以被不同的classloader装载,一个类可以被多个class-loader装载。
应用服务器运行时,应用的某个类可能部署在多个地方,应用开发人员在开发、生产过程中,出于排错、调试的目的,经常需要获取某个应用中的类被classloader装载的信息。例如获取这个类对应的类文件所在物理位置,装载这个类文件的classloader是哪个等等。
现有技术中获取这些信息的方法有以下几种:
1、通过硬编码在应用代码中输出所述需要的信息,即发现错误后,修改应用代码,添加一段代码,当启动后,可以在控制台上看到具体的类文件所在物理位置或者装载该类文件的classloader。通过所述硬编码的方式输出,需要修改代码,并且会增加垃圾日志的输出,导致应用性能的下降。
2、通过第三方软件输出所述需要的信息,如使用jprofile这类第三方软件,所述第三方软件之所以能够分析JVM中的线程、类装载的信息,是因为必须将整个应用服务器进程托管给所述第三方软件,由第三方软件来具体维护整个应用服务器进程的生命周期,因此配置非常复杂,并且所述第三方软件为商业软件,需要购买,经济代价大。
3、通过编写JMX功能模块,嵌入在应用中从而输出所述需要的信息,所述编写JMX组件的开发量很大,复杂度非常高。
通过以上分析可以看出,所述三种方式,都需要开发、维护人员大量的工作,成本高,并且无论采取哪一种方式,都不能在出错的应用环境中及时获取相应的信息,而这一点对于应用的排错是非常重要的。因此,迫切需要一种简单、经济且能及时获取应用出错信息的信息获取方法。
发明内容
本发明所要解决的技术问题是提供一种通过简单的客户端/本地调用,就可以获取类装载信息的方法。
为了解决上述问题,本发明公开了一种获取应用服务器中类装载信息的方法,包括:
向类装载器注册侦听器;
实例化类装载器时,激活所述注册的侦听器;
所述侦听器接受所述触发并响应;
所述侦听器保存类装载器实例引用。
所述注册侦听器的具体步骤包括:
实现一个符合Java EE Mbean规范的类装载器监控服务;
在应用服务器的启动服务列表中配置所述类装载器监控服务;
通过所述类装载器监控服务注册侦听器。
所述保存的具体过程为:
所述侦听器将所述类装载器实例引用保存在内存的数据结构中。
进一步,还包括:
接收本地/客户端的请求,输出所述已经保存的类装载信息。
优选的,所述输出类装载信息的步骤具体包括:
本地调用类装载器监控服务;
类装载器监控服务响应,通过保存的类装载器访问并返回保存的类信息。
优选的,所述输出类装载信息的具体步骤包括:
客户端登录应用服务器;
初始化JMX连接器;
获取指定服务名的Mbean接口;
通过所述接口调用获取信息。
优选的,所述输出类装载信息的具体步骤包括:
客户端/本地调用类装载器监控服务的Mbean接口,请求获取应用服务器中的类装载器实例数;
类装载器监控服务响应,返回保存的类装载器实例数目。
优选的,所述输出的类装载信息的步骤具体包括:
a1、客户端/本地调用类装载器监控服务的Mbean接口;
a2、类装载器监控服务响应;
a3、判断指定接口调用中是否指定具体的类装载器实例,没有指定则进入步骤a4;
a4、遍历保存的所有类装载器实例;
a5、判断类装载器实例是否已经装载了给定类名的类,否则返回步骤a4,是则进入步骤a6;
a6、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径等信息;
a7、返回所述类信息值对象。
优选的,所述输出的类装载信息的步骤具体包括:
b1、客户端/本地调用类装载器监控服务的Mbean接口;
b2、类装载器监控服务响应;
b3、判断指定接口调用中是否指定具体的类装载器实例,没有指定则进入步骤b4;
b4、遍历保存的所有类装载器实例;
b5、判断类装载器实例是否已经装载了给定类名的类,否则返回步骤b4,是则进入步骤b6;
b6、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径等信息,添加所述类信息值对象入类信息值对象集合;
b7、判断是否还有类装载器实例,是则返回步骤b4,否则进入步骤b8;
b8、返回所述类信息值对象集合。
优选的,所述输出的类装载信息的步骤具体包括:
c1、客户端/本地调用类装载器监控服务的Mbean接口;
c2、类装载器监控服务响应;
c3、判断指定接口调用中是否指定具体的类装载器实例,是则进入步骤c4;
c4、判断指定的类装载器实例是否已经装载了给定类名的类,否则返回空值,是则进入步骤c5;
c5、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径等信息;
c6、返回所述类信息值对象。
与现有技术相比,本发明具有以下优点:
本发明在应用服务器启动时,向类装载器注册侦听器,实例化类装载器时,激活所述注册的侦听器,所述侦听器响应后保存类装载器实例引用。在应用服务器运行时,通过简单的客户端/本地调用,就可以获取给定类名的java类被classloader装载的信息以及对应的类文件的物理位置等类装载信息。通过本发明获取类装载信息,不需要应用开发、维护人员的额外配置、额外编码,且不影响性能,通过简单的客户端/本地调用即可获取应用服务器内部类装载信息,减少了排错、调试的工作量,降低应用服务器的维护成本。
附图说明
图1是本发明一种获取应用服务器中类装载信息的方法流程图;
图2是本发明一种获取应用服务器中类装载信息的方法流程图;
图3是本发明另一种获应用取服务器中类装载信息的方法流程图;
图4是本发明一种获取类装载器实例数目的方法流程图;
图5是本发明一种获取给定类名的类被装载时的类装载信息的方法流程图;
图6是本发明另一种获取给定类名的类被装载时的类装载信息的方法流程图;
图7是本发明一种获取指定类名在指定的类装载器中被装载的类装载信息的方法流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
作为企业级应用的解决方案,应用服务器应当提供:(1)加快开发过程、确保开发质量,促使应用快速进入市场的开发能力;(2)促使应用能够以灵活而有效方式运行的部署能力;(3)与各种后端系统有效整合的集成能力。在帮助客户建立、部署和运行企业应用时所需要的灵活性和功能,都源于对应用服务器各种能力的组合与运用。具体的,应用服务器的功能可以划为核心服务和扩展服务。核心服务:为业务逻辑的实现提供支持;对应用服务器的管理能力;提供协议和接口的引擎,支持通讯协议(如HTTP、IIOP)、数据库互联标准(如JDBC、ODBC)、分布式计算协议等多种工业标准。扩展服务:为支持高端应用而应当提供的功能,主要包括:事务(transaction)处理、集群(cluster)、失效恢复(fail over)、负载均衡(load balancing)、缓存机制、安全服务、与企业已有应用系统的集成能力、开发有效性(与应用程序开发环境和工具的结合能力)。
近年在应用服务器技术中最具意义的进展,就是J2EE(Java 2 PlatformEnterprise Edition)的出现。J2EE是Sun公司提出的开发、部署、运行和管理基于爪哇(Java)分布式应用的标准平台。它以Java 2平台标准版(J2SE)为基础,继承了标准版的许多优点,还提供了对EJB、Java Servlet、JSP等技术的全面支持。J2EE使用EJB Server作为商业组件的部署环境,在EJB Server中提供了分布式计算环境中组件需要的服务,例如组件生命周期的管理、数据库连接的管理、分布式事务的支持、组件的命名服务等。
J2EE用于实现应用服务器有其优势,它可以利用Java语言自身具有的跨平台性、可移植性、对象特性、内存管理等方面的性能,为应用服务器的实现提供一个完整的底层框架。J2EE中定义的各种服务,包括JSP和Servlet容器、EJB容器、JDBC、JNDI(名字目录服务)、JTS/JTA(事务服务)、JMS(消息服务)等,也分别为应用服务器提供了各种支持。实现商业逻辑的EJB组件可以更加高效的运行在应用服务器中,用户可以通过Java Sevlet或者JSP调用运行在EJB Server中的EJB,也可以通过IIOP直接访问运行在EJB Server中的组件。除了应用服务器的基本特性以外,J2EE应用服务器还应实现:支持Java编程的工业标准,包括EJB、JDBC、JNDI、RMI-IIOP、JCA、JTS/JTA等;能够与业界主要的IDE(如Borland Jbuilder、VisualCafe等)集成;与标准的Java操作平台兼容,如Sun、IBM等系统平台;使用完全的Java语言编码实现,保证良好的可移植性和支持Java的语言特性。
Java虚拟机(JVM)的类装载就是将包含在类文件中的字节码装载到JVM中,但是类装载器也不是原封不动的装载到JVM,它是将类(.class)文件中的内容转换成JVM使用的类字节码。通过类装载器装载到JVM中的字节码数据,就成了可执行的代码。类装载器把类装入JVM中,要经过三个步骤完成:装载,链接和初始化。
类装载器本身也是一个java类,类库中提供了一个java.lang.classloader做为类的装载器基类,也就是说真正的类装载器都必须是classloader的子类。Class类中定义了一个getclassloader方法,用于返回它所描述的类的类装载器对象,这个返回对象的类型就是classloader。一个java应用持续使用两种类型的类装载器:根装载器(bootstrap)和用户定义的装载器(user-defined),所谓根装载器就是JVM中内嵌的一个类,它是用特定的操作系统的本地代码实现的,它不用专门的类装载器去进行装载。它负责装载java核心包中的类文件中的类。对一个已经被父级类装载器装载的类来说。JVM默认也使用这个父级类装载器去装载它所调用的其他类,由于父级类装载器不会委托子级类装载器去装载类,所以,在一般情况下,一个已被父级类装载器装载的类无法调用那些只能被子级类装载器发现和装载的其他的类。
本发明通过实现一个符合Java EE Mbean规范的类装载器监控服务(clservice),所述clservice提供三个接口,所述各接口可以实现以下功能:(1)获取服务器中的classloader实例数目;(2)获取某个给定类名的类被装载的信息;(3)获取指定类名在指定的classloader中被装载的信息。所述类装载器监控服务配置在应用服务器的启动服务列表中,通过所述类装载器监控服务注册侦听器(listener),除系统classloader实例外,运行在应用服务器进程中的每一个classloader在实例化的时候,都会触发已注册的侦听器,并保存classloader引用。在应用服务器运行时,通过简单的客户端/本地调用,就可以获取给定类名的java类被classloader装载的信息以及对应的类文件的物理位置等类装载信息。通过本发明所述方法获取类装载信息,不需要开发、维护人员的额外配置、额外编码,且不影响性能,通过简单的客户端/本地调用即可获取应用服务器内部类装载信息,减少了排错、调试的工作量,降低应用服务器的维护成本。
参照图1,示出了本发明一种获取应用服务器中类装载信息的方法流程图,包括:
步骤101、注册侦听器。
要实现本发明,首先需要在应用服务器中增加新机制,增加类装载器(classloader)初始化事件触发-响应机制。该机制在于,除系统classloader实例外,运行在应用服务器进程中的每一个classloader实例化的时候,都会触发classloader初始化事件(下称cievent),所述cievent本身是一个JavaBean对象,里面包含了刚刚被初始化的classloader实例。其次需要实现一个符合JavaEE Mbean规范的classloader监控服务(下称clservice)。并且将该服务配置在应用服务器的启动列表中,通过所述类装载监控服务(clservice)注册侦听器(listener)。所述clservice提供三个接口,分别为:1)public ClassDesc[]findClass(String className),获得指定类名的类描述信息,同样的类名可能存在于不同的classloader之中;2)public ClassDesc findClass(String className,ClassLoader baseCL),指定classLoader获取类信息;3)public intgetClassLoaderCount(),获取当前JVM中的classloader的实例数目,所述接口都可以供客户端通过本地或者远程调用的方式调用。通过以上描述可以得知,所述各接口可以实现以下功能:(1)获取服务器中的classloader实例数目;(2)获取某个给定类名的类被装载的信息;(3)获取指定类名在指定的classloader中被装载的信息。
步骤102、激活所述注册的侦听器。
在应用服务器运行,实例化类装载器时,激活所述注册的侦听器。除系统classloader实例外,运行在应用服务器进行中的每一个classloader实例化的时候,都会触发classloader初始化事件(cievent),该事件由已注册的侦听器(cilistener)接受,即激活所述注册的侦听器。
步骤103、侦听器接受触发并响应。
所述注册的侦听器能接受被触发的classloader初始化事件,并作出响应。
步骤104、保存classloader实例引用。
类装载器初始化侦听器(cilistener)从类装载器初始化事件(cievent)获取ClassLoader实例,并保存在内存的数据结构中。实例引用是Java中的一个词汇,一个类,被实例化之后,就会产生一个对于该类的实例引用。
进一步,还包括步骤105、接收客户端/本地请求,输出已经保存的类装载信息。
在步骤104中,所述侦听器将所述类装载器实例引用保存在自身的数据结构中,接收本地/客户端输出类装载信息请求后,输出已经保存的类装载信息。
参照图2,示出了本发明一种应用获取服务器中类装载信息的方法流程图,包括:
步骤201、本地调用类装载器监控服务。
本地调用clservice的Mbean接口,向应用服务器发出获取类装载信息的请求。
步骤202、类装载器监控服务响应,返回类装载信息。
所述应用服务器中的clservice响应所述请求,通过保存的类装载器访问并返回保存的类装载信息。
所述图2所示的方法是基于本地调用,本地请求获取类装载信息,所述本地是指客户端和应用服务器运行在同一个java虚拟机(JVM)中。所述调用方法如下:
ClassLoaderServiceMBean service=(ClassLoaderService)Config.getService(ClassLoaderService.OBJECT_NAME),获取得到一个类装载器监控服务,可以直接通过:
service.getClassLoaderCount();
service.findClass(类名);
service.findClass(类名,ClassLoader实例)访问,获取类装载信息。
参照图3,示出了本发明另一种获应用取服务器中类装载信息的方法流程图,包括:
步骤301、客户端登录应用服务器。
图3所示方法是基于远程调用,远程客户端请求获取应用服务器类装载信息,所述远程是指客户端和应用服务器不在同一个JVM中。
步骤302、初始化JMX连接器;
JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何java应用程序中使用这些代理和服务实现管理,JMX体系被分成三层:a、表现层;b、代理层;c、分布式服务层。
步骤303、获取指定服务名的Mbean接口;
步骤304、通过所述接口调用获取信息。
图3方法所示的调用,都是符合JMX规范的,在这些调用中,除了符合规范的部分外,还需要指定一些配置信息:(1)登录应用服务器的jaas认证文件路径;(2)登录应用服务器的用户名/密码;(3)应用服务器的地址,在java中采用iiop协议;(4)给定Mbean名称,获取Mbean;(5)给出要获取类装载信息的类的类名。
参照图4、示出了本发明一种获取类装载器实例数目的方法流程图,包括本地获取和客户端远程获取,包括:
步骤401、客户端/本地调用类装载器监控服务的Mbean接口,请求获取应用服务器中的类装载器实例数。
步骤402、类装载器监控服务响应,返回保存的类装载器实例数目。
参照图5、示出了本发明一种获取给定类名的类被装载时的类装载信息的方法流程图,包括:
步骤501、客户端/本地调用类装载器监控服务的Mbean接口,进入步骤502。
步骤502、所述类装载器监控服务响应,进入步骤503。
步骤503、判断指定接口调用中是否指定具体的类装载器实例,如果没有指定的话就进入步骤504。
步骤504、遍历保存的所有类装载器实例,进入步骤505。
步骤505、判断类装载器实例是否已经装载了给定类名的类,如果没有装载给定类名的类则返回步骤504,如果已经装载了给定类名的类,则进入步骤506。
步骤506、构造类信息值对象。所述类信息包括:完整类名、类文件物理位置、被装载的classloader等外部信息,以及类本身的一些内部信息,如有哪些属性和方法、继承自哪个类、实现了什么接口等等。本发明主要关注类的外部信息,主要需要:完整类名、类文件的物理位置、装载这个类的classloader的完整类名和装载这个类的classloader实例在JVM中的唯一标示,所述唯一标示是JVM自动分配的,为一个长整形数字。
步骤507、返回所述类信息值对象。
参照图6,示出了本发明另一种获取给定类名的类被装载时的类装载信息的方法流程图,包括:
步骤601、客户端/本地调用类装载器监控服务的Mbean接口,进入步骤602。
步骤602、所述类装载器监控服务响应,进入步骤603。
步骤603、判断指定接口调用中是否指定具体的类装载器实例,如果没有指定的话就进入步骤604。
步骤604、遍历保存的所有类装载器实例,进入步骤605。
步骤605、判断类装载器实例是否已经装载了给定类名的类,如果没有装载给定类名的类则返回步骤604,如果已经装载了给定类名的类,则进入步骤606。
步骤606、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径等信息,添加所述类信息值对象入类信息值对象集合。
步骤607、判断是否还有类装载器实例,如果还有没被遍历的类装载器实例则返回步骤604,如果所有类装载器实例都遍历完成,则进入步骤608。
步骤608、返回所述类信息值对象集合。
参照图7、示出了本发明一种获取指定类名在指定的classloader中被装载的类装载信息的方法流程图,包括:
步骤701、客户端/本地调用类装载器监控服务的Mbean接口,进入步骤702。
步骤702、所述类装载器监控服务响应所述调用,进入步骤703。
步骤703、判断指定接口调用中是否指定具体的类装载器实例,如果指定则进入步骤704。
步骤704、判断指定的类装载器实例是否已经装载了给定类名的类,如果没有装载给定类名的类则返回空值,已经装载了给定类名的类则进入步骤705。
步骤705、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径等信息。
步骤706、返回所述类信息值对象。
以上对本发明所提供的一种获取应用服务器中类装载信息的方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种获取应用服务器中类装载信息的方法,其特征在于,包括:
向类装载器注册侦听器;
实例化类装载器时,激活所述注册的侦听器;
所述侦听器接受所述触发并响应;
所述侦听器保存类装载器实例引用。
2.如权利要求1所述的获取应用服务器中类装载信息的方法,其特征在于,所述注册侦听器的具体步骤包括:
实现一个符合Java EE Mbean规范的类装载器监控服务;
在应用服务器的启动服务列表中配置所述类装载器监控服务;
通过所述类装载器监控服务注册侦听器。
3.如权利要求1所述的获取应用服务器中类装载信息的方法,其特征在于,所述保存的具体步骤为:
所述侦听器将所述类装载器实例引用保存在内存的数据结构中。
4.如权利要求1所述的获取应用服务器中类装载信息的方法,其特征在于,还包括:
接受本地/客户端请求,根据请求的类名,通过以保存的类装载器,访问并输出该类名对应的类装载信息。
5.如权利要求4所述的获取应用服务器中类装载信息的方法,其特征在于,所述输出类装载信息的步骤具体包括:
本地调用类装载器监控服务;
类装载器监控服务响应,通过保存的类装载器访问并返回保存的请求中类名对应的类装载信息。
6.如权利要求4所述的获取应用服务器中类装载信息的方法,其特征在于,所述输出类装载信息的具体步骤包括:
客户端登录应用服务器;
初始化JMX连接器;
获取指定服务名的Mbean接口;
通过所述接口调用获取信息。
7.如权利要求5或6所述的获取应用服务器中类装载信息的方法,其特征在于,所述输出类装载信息的具体步骤包括:
客户端/本地调用类装载器监控服务的Mbean接口,请求获取应用服务器中的类装载器实例数;
类装载器监控服务响应,返回保存的类装载器实例数目。
8.如权利要求5或6所述的获取应用服务器中类装载信息的方法,其特征在于,所述输出的类装载信息的步骤具体包括:
a1、客户端/本地调用类装载器监控服务的Mbean接口;
a2、类装载器监控服务响应;
a3、判断指定接口调用中是否指定具体的类装载器实例,没有指定则进入步骤a4;
a4、遍历保存的所有类装载器实例;
a5、判断类装载器实例是否已经装载了给定类名的类,否则返回步骤a4,是则进入步骤a6;
a6、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径等信息;
a7、返回所述类信息值对象。
9.如权利要求5或6所述的获取应用服务器中类装载信息的方法,其特征在于,所述输出的类装载信息的步骤具体包括:
b1、客户端/本地调用类装载器监控服务的Mbean接口;
b2、类装载器监控服务响应;
b3、判断指定接口调用中是否指定具体的类装载器实例,没有指定则进入步骤b4;
b4、遍历保存的所有类装载器实例;
b5、判断类装载器实例是否已经装载了给定类名的类,否则返回步骤b4,是则进入步骤b6;
b6、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径等信息,添加所述类信息值对象入类信息值对象集合;
b7、判断是否还有类装载器实例,是则返回步骤b4,否则进入步骤b8;
b8、返回所述类信息值对象集合。
10.如权利要求5或6所述的获取应用服务器中类装载信息的方法,其特征在于,所述输出的类装载信息的步骤具体包括:
c1、客户端/本地调用类装载器监控服务的Mbean接口;
c2、类装载器监控服务响应;
c3、判断指定接口调用中是否指定具体的类装载器实例,是则进入步骤c4;
c4、判断指定的类装载器实例是否已经装载了给定类名的类,否则返回空值,是则进入步骤c5;
c5、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径等信息;
c6、返回所述类信息值对象。
CN200710143973A 2007-08-16 2007-08-16 一种获取应用服务器中类装载信息的方法 Expired - Fee Related CN100595732C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200710143973A CN100595732C (zh) 2007-08-16 2007-08-16 一种获取应用服务器中类装载信息的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200710143973A CN100595732C (zh) 2007-08-16 2007-08-16 一种获取应用服务器中类装载信息的方法

Publications (2)

Publication Number Publication Date
CN101105749A true CN101105749A (zh) 2008-01-16
CN100595732C CN100595732C (zh) 2010-03-24

Family

ID=38999657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710143973A Expired - Fee Related CN100595732C (zh) 2007-08-16 2007-08-16 一种获取应用服务器中类装载信息的方法

Country Status (1)

Country Link
CN (1) CN100595732C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101834750B (zh) * 2009-12-29 2012-01-25 山东中创软件商用中间件股份有限公司 一种通用业务监控方法
CN105718360A (zh) * 2016-03-09 2016-06-29 国家电网公司 Java管理扩展抓取组件及java管理扩展抓取组件实现方法
CN107133055A (zh) * 2017-06-07 2017-09-05 焦点科技股份有限公司 一种基于ClassLoader实现定制开发的方法
CN112269638A (zh) * 2020-10-29 2021-01-26 苏州浪潮智能科技有限公司 一种实现服务器应用之间交互的虚拟机类装载装置、方法及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101834750B (zh) * 2009-12-29 2012-01-25 山东中创软件商用中间件股份有限公司 一种通用业务监控方法
CN105718360A (zh) * 2016-03-09 2016-06-29 国家电网公司 Java管理扩展抓取组件及java管理扩展抓取组件实现方法
CN107133055A (zh) * 2017-06-07 2017-09-05 焦点科技股份有限公司 一种基于ClassLoader实现定制开发的方法
CN107133055B (zh) * 2017-06-07 2020-04-24 百卓网络科技有限公司 一种基于ClassLoader实现定制开发的方法
CN112269638A (zh) * 2020-10-29 2021-01-26 苏州浪潮智能科技有限公司 一种实现服务器应用之间交互的虚拟机类装载装置、方法及系统
CN112269638B (zh) * 2020-10-29 2022-06-03 苏州浪潮智能科技有限公司 一种实现服务器应用之间交互的虚拟机类装载装置、方法及系统

Also Published As

Publication number Publication date
CN100595732C (zh) 2010-03-24

Similar Documents

Publication Publication Date Title
Roman et al. Mastering enterprise javabeans
CN101266542B (zh) 一种在容器中装载组件的方法及装置
US7213049B2 (en) System and method for transaction processing with transaction property feature
US6915511B2 (en) Dynamic class reloading mechanism
US20070156913A1 (en) Method for enabling extension points through plug-ins
Goncalves Beginning Java EE 6 Platform with GlassFish 3: from novice to professional
US11042387B2 (en) Deploying cross-platform applications on mobile devices with native and web components
US20040158843A1 (en) Remote object invocation system and method
AU2002318249A1 (en) System and method for transaction processing with transaction property feature
EP1417558A2 (en) System and method for transaction processing with synchronized callback processing feature
EP1851982A1 (en) Mobile device having extensible software for presenting server-side applications, software and methods
US7093242B2 (en) Dynamic class interposition
CN100595732C (zh) 一种获取应用服务器中类装载信息的方法
US11392359B2 (en) Non specification supported application deployment descriptors and web application deployment descriptors
Pour Enterprise JavaBeans, JavaBeans and XML expanding the possibilities for Web-based enterprise application development
US20060041890A1 (en) Portal runtime framework
US20070220528A1 (en) Application execution in a network based environment
WO2005114389A1 (en) Portal runtime framework
Madiajagan et al. Interoperability in component based software development
Wetherbee et al. Beginning EJB 3: Java EE 7 Edition
GB2370658A (en) A modular software framework
Green et al. PowerBuilder 9: Internet and Distributed Application Development
Mark Sun Certified Enterprise Architect For Java Ee Study Guide, 2/E
Oser et al. The LEAF platform: incremental enhancements for the J2EE
Gupta Apache Log4j

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SHENZHEN KINGDEE MIDDLEWARE CO.

Free format text: FORMER OWNER: KINGDEE SOFTWARE (CHINA) COMPANY LTD.

Effective date: 20080523

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20080523

Address after: 1.3.4 District, Shenzhen District, Nanshan District hi tech Industrial Zone, Guangdong Province, second floor, sparrow Hill Industrial Zone, M-6, 518000

Applicant after: SHENZHEN KINGDEE MIDDLEWARE Co.,Ltd.

Address before: W1-B4, hi tech Industrial Zone, Shennan Avenue, Shenzhen, Guangdong, Nanshan District Province, China: 518057

Applicant before: Kingdee software (China) Co.,Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee after: SHENZHEN JINDIE TIANYAN MIDDLEWARE Co.,Ltd.

Address before: Second 1.3.4 District, building M-6, industrial zone,, Central Industrial Zone, Nanshan District high tech Zone, Guangdong, China

Patentee before: SHENZHEN KINGDEE MIDDLEWARE Co.,Ltd.

CP01 Change in the name or title of a patent holder

Address after: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee after: Shenzhen Kingdee tianyanyun computing Co.,Ltd.

Address before: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee before: SHENZHEN JINDIE TIANYAN MIDDLEWARE Co.,Ltd.

CP01 Change in the name or title of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100324

CF01 Termination of patent right due to non-payment of annual fee