[go: up one dir, main page]

CN100595732C - A Method of Obtaining Class Loading Information in Application Server - Google Patents

A Method of Obtaining Class Loading Information in Application Server Download PDF

Info

Publication number
CN100595732C
CN100595732C CN200710143973A CN200710143973A CN100595732C CN 100595732 C CN100595732 C CN 100595732C CN 200710143973 A CN200710143973 A CN 200710143973A CN 200710143973 A CN200710143973 A CN 200710143973A CN 100595732 C CN100595732 C CN 100595732C
Authority
CN
China
Prior art keywords
class
loader
application server
class loader
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.)
Expired - Fee Related
Application number
CN200710143973A
Other languages
Chinese (zh)
Other versions
CN101105749A (en
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
SHENZHEN KINGDEE MIDDLEWARE 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 SHENZHEN KINGDEE MIDDLEWARE CO Ltd filed Critical SHENZHEN KINGDEE MIDDLEWARE CO Ltd
Priority to CN200710143973A priority Critical patent/CN100595732C/en
Publication of CN101105749A publication Critical patent/CN101105749A/en
Application granted granted Critical
Publication of CN100595732C publication Critical patent/CN100595732C/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

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

Figure 200710143973

The present invention provides a method for obtaining class loading information in an application server, comprising: registering a listener with the class loader when the application server is started; and activating the registered listener when the application server is running and instantiating the class loader listener; the listener accepts the trigger and responds to the trigger; the listener saves the class loader instance reference, and can obtain the internal class loading information of the application server through a simple client/local call, reducing Reduce the workload of troubleshooting and debugging, and reduce the maintenance cost of the application server.

Figure 200710143973

Description

一种获取应用服务器中类装载信息的方法 A Method of Obtaining Class Loading Information in Application Server

技术领域 technical field

本发明涉及应用服务器领域,特别是涉及一种获取应用服务器中类装载信息的方法。The invention relates to the field of application servers, in particular to a method for acquiring class loading information in the application server.

背景技术 Background technique

目前在Internet/Intranet/Extranet环境中,企业级应用系统大多采用三层或多层应用模式。为了方便开发、部署、运行和管理基于多层结构的应用,需要以网络和分布式计算的底层技术为基础,构建一个完整的应用框架,提供相应的支撑平台作为多层应用的基础设施,这一支撑平台的关键就是位于中间层的应用服务器。应用服务器是一个创建、部署、运行、集成和维护多层分布式企业级应用的平台。在企业应用中,应用服务器可以提供如下好处:提高企业应用开发的有效性,保障业务逻辑和组件的重用性;提高企业应用的性能,如高运行性能和响应时间、可伸缩性、可靠性等;使企业应用更易于监控和管理,降低系统维护和升级成本。由于应用服务器的重要作用和关键地位,它已经成为当今业界的一个热点。At present, in the Internet/Intranet/Extranet environment, most enterprise-level application systems adopt three-tier or multi-tier application modes. In order to facilitate the development, deployment, operation and management of applications based on multi-layer structure, it is necessary to build a complete application framework based on the underlying technology of network and distributed computing, and provide corresponding supporting platforms as the infrastructure of multi-layer applications. The key to supporting the platform is the application server in the middle layer. Application server is a platform for creating, deploying, running, integrating and maintaining multi-tier distributed enterprise applications. In enterprise applications, application servers can provide the following benefits: improve the effectiveness of enterprise application development, ensure the reusability of business logic and components; improve the performance of enterprise applications, such as high operating performance and response time, scalability, reliability, etc. ; Make enterprise applications easier to monitor and manage, reducing system maintenance and upgrade costs. Due to the important role and key position of the application server, it has become a hot spot in the industry today.

类装载是java语言提供的最强大的机制之一,一个类代表要执行的代码,而数据则表示其相关状态。状态时常改变,而代码则不会。当我们将一个特定的状态与一个类相对应起来,也就意味着将一个类事例化。尽管相同的类对应的实例其状态千差万别,但其本质都对应着同一段代码。一旦一个类被载入Java虚拟机(Java Virtual Machine,JVM)中,同一个类就不会被再次载入了。应用服务器自身的启动需要装载很多类文件(class),部署在应用服务器上的应用启动时也需要装载应用自身的类文件。JAVA的类装载机制是在同一个JVM中,按类路径的层次和顺序装载类文件,并且同一个类装载器(classloader)对同一个类只能够装载一次,classloader存在父子关系,同一个类文件可以被不同的classloader装载,一个类可以被多个class-loader装载。Class loading is one of the most powerful mechanisms provided by the Java language. A class represents the code to be executed, and data represents its related state. State changes all the time, code doesn't. When we associate a specific state with a class, it means instantiating a class. Although the states of instances corresponding to the same class vary widely, they essentially all correspond to the same piece of code. Once a class is loaded into the Java Virtual Machine (Java Virtual Machine, JVM), the same class will not be loaded again. The startup of the application server itself needs to load many class files, and the application deployed on the application server also needs to load the class files of the application itself when starting. The class loading mechanism of JAVA is to load class files in the same JVM according to the level and order of the class path, and the same class loader (classloader) can only load the same class once, classloader has a parent-child relationship, the same class file It can be loaded by different classloaders, and a class can be loaded by multiple class-loaders.

应用服务器运行时,应用的某个类可能部署在多个地方,应用开发人员在开发、生产过程中,出于排错、调试的目的,经常需要获取某个应用中的类被classloader装载的信息。例如获取这个类对应的类文件所在物理位置,装载这个类文件的classloader是哪个等等。When the application server is running, a certain class of the application may be deployed in multiple places. During the development and production process, application developers often need to obtain information about the class loaded by the classloader for the purpose of troubleshooting and debugging. . For example, obtain the physical location of the class file corresponding to this class, which classloader loads this class file, and so on.

现有技术中获取这些信息的方法有以下几种:There are several methods for obtaining such information in the prior art as follows:

1、通过硬编码在应用代码中输出所述需要的信息,即发现错误后,修改应用代码,添加一段代码,当启动后,可以在控制台上看到具体的类文件所在物理位置或者装载该类文件的classloader。通过所述硬编码的方式输出,需要修改代码,并且会增加垃圾日志的输出,导致应用性能的下降。1. Output the required information in the application code through hard coding, that is, after finding an error, modify the application code and add a piece of code. After starting, you can see the physical location of the specific class file on the console or load the classloader for class files. Outputting in the hard-coded manner requires modification of the code, and increases the output of garbage logs, resulting in a decrease in application performance.

2、通过第三方软件输出所述需要的信息,如使用jprofile这类第三方软件,所述第三方软件之所以能够分析JVM中的线程、类装载的信息,是因为必须将整个应用服务器进程托管给所述第三方软件,由第三方软件来具体维护整个应用服务器进程的生命周期,因此配置非常复杂,并且所述第三方软件为商业软件,需要购买,经济代价大。2. Output the required information through third-party software, such as using third-party software such as jprofile. The reason why the third-party software can analyze the information of threads and class loading in the JVM is that the entire application server process must be hosted For the third-party software, the third-party software specifically maintains the life cycle of the entire application server process, so the configuration is very complicated, and the third-party software is commercial software, which needs to be purchased, and the economic cost is high.

3、通过编写JMX功能模块,嵌入在应用中从而输出所述需要的信息,所述编写JMX组件的开发量很大,复杂度非常高。3. By writing the JMX function module and embedding it in the application to output the required information, the development of the JMX component is very large and the complexity is very high.

通过以上分析可以看出,所述三种方式,都需要开发、维护人员大量的工作,成本高,并且无论采取哪一种方式,都不能在出错的应用环境中及时获取相应的信息,而这一点对于应用的排错是非常重要的。因此,迫切需要一种简单、经济且能及时获取应用出错信息的信息获取方法。From the above analysis, it can be seen that the above three methods all require a lot of work by the development and maintenance personnel, and the cost is high, and no matter which method is adopted, the corresponding information cannot be obtained in time in the wrong application environment, and this One point is very important for application debugging. Therefore, there is an urgent need for an information acquisition method that is simple, economical, and capable of obtaining application error information in a timely manner.

发明内容 Contents of the invention

本发明所要解决的技术问题是提供一种通过简单的客户端/本地调用,就可以获取类装载信息的方法。The technical problem to be solved by the present invention is to provide a method for obtaining class loading information through a simple client/local call.

为了解决上述问题,本发明公开了一种获取应用服务器中类装载信息的方法,包括:In order to solve the above problems, the present invention discloses a method for obtaining class loading information in an application server, including:

向类装载器注册侦听器;Register the listener with the class loader;

实例化类装载器时,激活所述注册的侦听器;when the class loader is instantiated, activate said registered listener;

所述侦听器接受触发并对所述触发作出响应;the listener accepts a trigger and responds to the trigger;

所述侦听器保存类装载器实例引用。The listener holds a class loader instance reference.

所述注册侦听器的具体步骤包括:The specific steps of the registration listener include:

实现一个符合Java EE规范的Mbean类装载器监控服务;Implement an Mbean class loader monitoring service that complies with the Java EE specification;

在应用服务器的启动服务列表中配置所述类装载器监控服务;Configuring the class loader monitoring service in the startup service list of the application server;

通过所述类装载器监控服务注册侦听器。Register listeners with the class loader monitoring service.

所述保存的具体过程为:The concrete process of described preservation is:

所述侦听器将所述类装载器实例引用保存在内存的数据结构中。The listener saves the class loader instance reference in a data structure in memory.

进一步,还包括:Further, it also includes:

接收本地/客户端的请求,输出所述已经保存的类装载信息。Receive a local/client request, and output the saved class loading information.

优选的,所述输出类装载信息的步骤具体包括:Preferably, the step of outputting class loading information specifically includes:

本地调用类装载器监控服务;Call the class loader monitoring service locally;

类装载器监控服务响应,通过保存的类装载器访问并返回保存的类信息。The class loader monitors the service response, accesses and returns saved class information through the saved class loader.

优选的,所述输出类装载信息的具体步骤包括:Preferably, the specific steps of outputting class loading information include:

客户端登录应用服务器;The client logs in to the application server;

初始化JMX连接器;Initialize the JMX connector;

获取指定服务名的服务管理组件Mbean接口;Obtain the service management component Mbean interface of the specified service name;

通过所述接口调用获取信息。The information is obtained by calling the interface.

优选的,所述输出类装载信息的具体步骤包括:Preferably, the specific steps of outputting class loading information include:

客户端/本地调用类装载器监控服务的服务管理组件Mbean接口,请求获取应用服务器中的类装载器实例数;The client/local invokes the Mbean interface of the service management component of the class loader monitoring service to request the number of class loader instances in the application server;

类装载器监控服务响应,返回保存的类装载器实例数目。The class loader monitors the service response, returning the number of saved class loader instances.

优选的,所述输出的类装载信息的步骤具体包括:Preferably, the step of outputting the class loading information specifically includes:

a1、客户端/本地调用类装载器监控服务的服务管理组件Mbean接口;a1. The client/local invokes the Mbean interface of the service management component of the class loader monitoring service;

a2、类装载器监控服务响应;a2. The class loader monitors the service response;

a3、判断指定接口调用中是否指定具体的类装载器实例,没有指定则进入步骤a4;a3. Determine whether a specific class loader instance is specified in the specified interface call, if not specified, enter step a4;

a4、遍历保存的所有类装载器实例;a4. Traverse all saved class loader instances;

a5、判断类装载器实例是否已经装载了给定类名的类,否则返回步骤a4,是则进入步骤a6;a5. Determine whether the class loader instance has loaded the class with the given class name, otherwise return to step a4, and if yes, enter step a6;

a6、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径;a6. Constructing a class information value object, said class information value object including the class loader for loading the class, and the physical path of the class file;

a7、返回所述类信息值对象。a7. Return the class information value object.

优选的,所述输出的类装载信息的步骤具体包括:Preferably, the step of outputting the class loading information specifically includes:

b1、客户端/本地调用类装载器监控服务的服务管理组件Mbean接口;b1. The client/local invokes the Mbean interface of the service management component of the class loader monitoring service;

b2、类装载器监控服务响应;b2. The class loader monitors the service response;

b3、判断指定接口调用中是否指定具体的类装载器实例,没有指定则进入步骤b4;b3. Determine whether a specific class loader instance is specified in the specified interface call, and if not specified, enter step b4;

b4、遍历保存的所有类装载器实例;b4. Traverse all saved class loader instances;

b5、判断类装载器实例是否已经装载了给定类名的类,否则返回步骤b4,是则进入步骤b6;b5. Determine whether the class loader instance has loaded the class with the given class name, otherwise return to step b4, and if yes, enter step b6;

b6、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径,添加所述类信息值对象入类信息值对象集合;b6, constructing the class information value object, the class information value object including the class loader for loading the class, the physical path of the class file, adding the class information value object into the class information value object collection;

b7、判断是否还有类装载器实例,是则返回步骤b4,否则进入步骤b8;b7, judging whether there is a class loader instance, if yes, return to step b4, otherwise enter step b8;

b8、返回所述类信息值对象集合。b8. Return the class information value object set.

优选的,所述输出的类装载信息的步骤具体包括:Preferably, the step of outputting the class loading information specifically includes:

c1、客户端/本地调用类装载器监控服务的服务管理组件Mbean接口;c1, the client/local calls the service management component Mbean interface of the class loader monitoring service;

c2、类装载器监控服务响应;c2. The class loader monitors the service response;

c3、判断指定接口调用中是否指定具体的类装载器实例,是则进入步骤c4;c3. Determine whether a specific class loader instance is specified in the specified interface call, and if so, enter step c4;

c4、判断指定的类装载器实例是否已经装载了给定类名的类,否则返回空值,是则进入步骤c5;c4. Determine whether the specified class loader instance has loaded the class with the given class name, otherwise return a null value, and if so, enter step c5;

c5、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径;c5. Constructing a class information value object, said class information value object including the class loader for loading the class, and the physical path of the class file;

c6、返回所述类信息值对象。c6. Return the class information value object.

与现有技术相比,本发明具有以下优点:Compared with the prior art, the present invention has the following advantages:

本发明在应用服务器启动时,向类装载器注册侦听器,实例化类装载器时,激活所述注册的侦听器,所述侦听器响应后保存类装载器实例引用。在应用服务器运行时,通过简单的客户端/本地调用,就可以获取给定类名的java类被classloader装载的信息以及对应的类文件的物理位置等类装载信息。通过本发明获取类装载信息,不需要应用开发、维护人员的额外配置、额外编码,且不影响性能,通过简单的客户端/本地调用即可获取应用服务器内部类装载信息,减少了排错、调试的工作量,降低应用服务器的维护成本。The present invention registers the listener with the class loader when the application server is started, activates the registered listener when the class loader is instantiated, and saves the instance reference of the class loader after the listener responds. When the application server is running, through a simple client/local call, you can obtain the class loading information such as the information about the java class with the given class name being loaded by the classloader and the physical location of the corresponding class file. Obtaining class loading information through the present invention does not require additional configuration and coding by application developers and maintenance personnel, and does not affect performance. The internal class loading information of the application server can be obtained through simple client/local calls, reducing troubleshooting, Reduce the workload of debugging and reduce the maintenance cost of the application server.

附图说明 Description of drawings

图1是本发明一种获取应用服务器中类装载信息的方法流程图;Fig. 1 is a flow chart of a method for obtaining class loading information in an application server according to the present invention;

图2是本发明一种获取应用服务器中类装载信息的方法流程图;Fig. 2 is a flow chart of a method for obtaining class loading information in an application server according to the present invention;

图3是本发明另一种获应用取服务器中类装载信息的方法流程图;Fig. 3 is another kind of flow chart of the method for obtaining class loading information in the server of the present invention;

图4是本发明一种获取类装载器实例数目的方法流程图;Fig. 4 is a flow chart of a method for obtaining the number of class loader instances in the present invention;

图5是本发明一种获取给定类名的类被装载时的类装载信息的方法流程图;Fig. 5 is a flow chart of a method of obtaining class loading information when a class with a given class name is loaded according to the present invention;

图6是本发明另一种获取给定类名的类被装载时的类装载信息的方法流程图;Fig. 6 is another method flowchart of the present invention to obtain class loading information when a class with a given class name is loaded;

图7是本发明一种获取指定类名在指定的类装载器中被装载的类装载信息的方法流程图。Fig. 7 is a flowchart of a method for obtaining class loading information of a specified class name loaded in a specified class loader according to the present invention.

具体实施方式 Detailed ways

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。In order to make the above objects, features and advantages of the present invention more comprehensible, the present invention will be further described in detail below in conjunction with the accompanying drawings and specific embodiments.

作为企业级应用的解决方案,应用服务器应当提供:(1)加快开发过程、确保开发质量,促使应用快速进入市场的开发能力;(2)促使应用能够以灵活而有效方式运行的部署能力;(3)与各种后端系统有效整合的集成能力。在帮助客户建立、部署和运行企业应用时所需要的灵活性和功能,都源于对应用服务器各种能力的组合与运用。具体的,应用服务器的功能可以划为核心服务和扩展服务。核心服务:为业务逻辑的实现提供支持;对应用服务器的管理能力;提供协议和接口的引擎,支持通讯协议(如HTTP、IIOP)、数据库互联标准(如JDBC、ODBC)、分布式计算协议等多种工业标准。扩展服务:为支持高端应用而应当提供的功能,主要包括:事务(transaction)处理、集群(cluster)、失效恢复(fail over)、负载均衡(load balancing)、缓存机制、安全服务、与企业已有应用系统的集成能力、开发有效性(与应用程序开发环境和工具的结合能力)。As a solution for enterprise-level applications, the application server should provide: (1) the ability to speed up the development process, ensure the development quality, and promote the application to enter the market quickly; (2) the deployment ability to enable the application to run in a flexible and effective manner; ( 3) Integration ability to effectively integrate with various back-end systems. The flexibility and functions needed to help customers build, deploy and run enterprise applications come from the combination and use of various capabilities of application servers. Specifically, the functions of the application server can be divided into core services and extended services. Core services: provide support for the realization of business logic; manage the application server; provide an engine for protocols and interfaces, support communication protocols (such as HTTP, IIOP), database interconnection standards (such as JDBC, ODBC), distributed computing protocols, etc. Various industry standards. Extended service: functions that should be provided to support high-end applications, mainly including: transaction processing, cluster, fail over, load balancing, cache mechanism, security service, and enterprise existing It has the integration ability and development effectiveness of the application system (the ability to combine with the application development environment and tools).

近年在应用服务器技术中最具意义的进展,就是J2EE(Java 2 PlatformEnterprise Edition)的出现。J2EE是Sun公司提出的开发、部署、运行和管理基于爪哇(Java)分布式应用的标准平台。它以Java 2平台标准版(J2SE)为基础,继承了标准版的许多优点,还提供了对EJB、Java Servlet、JSP等技术的全面支持。J2EE使用EJB Server作为商业组件的部署环境,在EJB Server中提供了分布式计算环境中组件需要的服务,例如组件生命周期的管理、数据库连接的管理、分布式事务的支持、组件的命名服务等。The most significant development in application server technology in recent years is the emergence of J2EE (Java 2 Platform Enterprise Edition). J2EE is a standard platform for developing, deploying, running and managing Java-based distributed applications proposed by Sun. It is based on the Java 2 Platform Standard Edition (J2SE), inherits many advantages of the standard edition, and also provides comprehensive support for technologies such as EJB, Java Servlet, and JSP. J2EE uses EJB Server as the deployment environment for commercial components, and provides services required by components in a distributed computing environment in EJB Server, such as component lifecycle management, database connection management, distributed transaction support, component naming services, etc. .

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的语言特性。J2EE has its advantages in implementing application servers. It can provide a complete underlying framework for the implementation of application servers by utilizing the performance of Java language itself in terms of cross-platform, portability, object characteristics, and memory management. Various services defined in J2EE, including JSP and Servlet containers, EJB containers, JDBC, JNDI (name directory service), JTS/JTA (transaction service), JMS (message service), etc., also provide various services for application servers. support. EJB components that implement business logic can run more efficiently in application servers. Users can call EJBs running in EJB Server through Java Servlet or JSP, and can also directly access components running in EJB Server through IIOP. In addition to the basic features of the application server, the J2EE application server should also implement: support industry standards for Java programming, including EJB, JDBC, JNDI, RMI-IIOP, JCA, JTS/JTA, etc.; , VisualCafe, etc.) integration; compatible with standard Java operating platforms, such as Sun, IBM and other system platforms; using complete Java language coding to ensure good portability and support Java language features.

Java虚拟机(JVM)的类装载就是将包含在类文件中的字节码装载到JVM中,但是类装载器也不是原封不动的装载到JVM,它是将类(.class)文件中的内容转换成JVM使用的类字节码。通过类装载器装载到JVM中的字节码数据,就成了可执行的代码。类装载器把类装入JVM中,要经过三个步骤完成:装载,链接和初始化。The class loading of the Java virtual machine (JVM) is to load the bytecode contained in the class file into the JVM, but the class loader is not loaded into the JVM intact, it is the class (.class) file The content is converted into class bytecode used by the JVM. The bytecode data loaded into the JVM through the class loader becomes executable code. The class loader loads the class into the JVM through three steps: loading, linking, and initialization.

类装载器本身也是一个java类,类库中提供了一个java.lang.classloader做为类的装载器基类,也就是说真正的类装载器都必须是classloader的子类。Class类中定义了一个getclassloader方法,用于返回它所描述的类的类装载器对象,这个返回对象的类型就是classloader。一个java应用持续使用两种类型的类装载器:根装载器(bootstrap)和用户定义的装载器(user-defined),所谓根装载器就是JVM中内嵌的一个类,它是用特定的操作系统的本地代码实现的,它不用专门的类装载器去进行装载。它负责装载java核心包中的类文件中的类。对一个已经被父级类装载器装载的类来说。JVM默认也使用这个父级类装载器去装载它所调用的其他类,由于父级类装载器不会委托子级类装载器去装载类,所以,在一般情况下,一个已被父级类装载器装载的类无法调用那些只能被子级类装载器发现和装载的其他的类。The class loader itself is also a java class, and the class library provides a java.lang.classloader as the base class of the class loader, which means that the real class loader must be a subclass of classloader. A getclassloader method is defined in the Class class, which is used to return the class loader object of the class it describes, and the type of the returned object is classloader. A java application continues to use two types of class loaders: the root loader (bootstrap) and the user-defined loader (user-defined). The so-called root loader is a class embedded in the JVM, which uses specific operations The native code of the system is implemented, and it does not need a special class loader to load. It is responsible for loading the classes in the class files in the java core package. For a class that has been loaded by the parent class loader. By default, the JVM also uses this parent class loader to load other classes it calls. Since the parent class loader will not entrust the child class loader to load classes, in general, a parent class Classes loaded by a loader cannot call other classes that can only be discovered and loaded by child class loaders.

本发明通过实现一个符合Java EE Mbean规范的类装载器监控服务(clservice),所述clservice提供三个接口,所述各接口可以实现以下功能:(1)获取服务器中的classloader实例数目;(2)获取某个给定类名的类被装载的信息;(3)获取指定类名在指定的classloader中被装载的信息。所述类装载器监控服务配置在应用服务器的启动服务列表中,通过所述类装载器监控服务注册侦听器(listener),除系统classloader实例外,运行在应用服务器进程中的每一个classloader在实例化的时候,都会触发已注册的侦听器,并保存classloader引用。在应用服务器运行时,通过简单的客户端/本地调用,就可以获取给定类名的java类被classloader装载的信息以及对应的类文件的物理位置等类装载信息。通过本发明所述方法获取类装载信息,不需要开发、维护人员的额外配置、额外编码,且不影响性能,通过简单的客户端/本地调用即可获取应用服务器内部类装载信息,减少了排错、调试的工作量,降低应用服务器的维护成本。The present invention is by realizing a class loader monitoring service (clservice) that conforms to the Java EE Mbean norm, and described clservice provides three interfaces, and described each interface can realize following function: (1) obtain the classloader example number in the server; (2) ) Obtain the information that a class with a given class name is loaded; (3) Obtain the information that the specified class name is loaded in the specified classloader. The class loader monitoring service is configured in the startup service list of the application server, and the listener (listener) is registered through the class loader monitoring service. Except the system classloader instance, each classloader running in the application server process is in the When instantiated, the registered listener will be triggered and the classloader reference will be saved. When the application server is running, through a simple client/local call, you can obtain the class loading information such as the information about the java class with the given class name being loaded by the classloader and the physical location of the corresponding class file. Obtaining class loading information through the method described in the present invention does not require additional configuration and extra coding by development and maintenance personnel, and does not affect performance. The internal class loading information of the application server can be obtained through simple client/local calls, reducing the number of queues. The workload of error and debugging is reduced, and the maintenance cost of the application server is reduced.

参照图1,示出了本发明一种获取应用服务器中类装载信息的方法流程图,包括:Referring to Fig. 1, it shows a flow chart of a method for obtaining class loading information in an application server according to the present invention, including:

步骤101、注册侦听器。Step 101, register a listener.

要实现本发明,首先需要在应用服务器中增加新机制,增加类装载器(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中被装载的信息。To realize the present invention, it is first necessary to add a new mechanism in the application server, adding a class loader (classloader) initialization event trigger-response mechanism. The mechanism is that, in addition to the system classloader instance, when each classloader running in the application server process is instantiated, a classloader initialization event (hereinafter referred to as cievent) will be triggered. The cievent itself is a JavaBean object, which contains the The initialized classloader instance. Secondly, it is necessary to implement a classloader monitoring service (hereinafter referred to as clservice) that conforms to the JavaEE Mbean specification. And the service is configured in the startup list of the application server, and a listener (listener) is registered through the class loading monitoring service (clservice). The clservice provides three interfaces, namely: 1) public ClassDesc[] findClass(String className), to obtain the class description information of the specified class name, the same class name may exist in different classloaders; 2) public ClassDesc findClass (String className, ClassLoader baseCL), specifies the classLoader to obtain class information; 3) public intgetClassLoaderCount(), obtains the instance number of the classloader in the current JVM, and the interface can be called by the client through local or remote calls. It can be known from the above description that each interface can realize the following functions: (1) obtain the number of classloader instances in the server; (2) obtain the loaded information of a class with a given class name; (3) obtain the specified class Name information loaded in the specified classloader.

步骤102、激活所述注册的侦听器。Step 102, activate the registered listener.

在应用服务器运行,实例化类装载器时,激活所述注册的侦听器。除系统classloader实例外,运行在应用服务器进行中的每一个classloader实例化的时候,都会触发classloader初始化事件(cievent),该事件由已注册的侦听器(cilistener)接受,即激活所述注册的侦听器。The registered listener is activated when the application server is running and the class loader is instantiated. In addition to the system classloader instance, when each classloader running in the application server is instantiated, the classloader initialization event (cievent) will be triggered, and the event will be accepted by the registered listener (cilistener), that is, activate the registered listener.

步骤103、侦听器接受触发并响应。Step 103, the listener accepts the trigger and responds.

所述注册的侦听器能接受被触发的classloader初始化事件,并作出响应。The registered listener can receive the triggered classloader initialization event and make a response.

步骤104、保存classloader实例引用。Step 104, save the classloader instance reference.

类装载器初始化侦听器(cilistener)从类装载器初始化事件(cievent)获取ClassLoader实例,并保存在内存的数据结构中。实例引用是Java中的一个词汇,一个类,被实例化之后,就会产生一个对于该类的实例引用。The class loader initialization listener (cilistener) obtains the ClassLoader instance from the class loader initialization event (cievent), and saves it in the data structure of the memory. Instance reference is a vocabulary in Java. After a class is instantiated, an instance reference to the class will be generated.

进一步,还包括步骤105、接收客户端/本地请求,输出已经保存的类装载信息。Further, step 105 is also included, receiving a client/local request, and outputting saved class loading information.

在步骤104中,所述侦听器将所述类装载器实例引用保存在自身的数据结构中,接收本地/客户端输出类装载信息请求后,输出已经保存的类装载信息。In step 104, the listener saves the class loader instance reference in its own data structure, and outputs the saved class loading information after receiving a local/client output request for class loading information.

参照图2,示出了本发明一种应用获取服务器中类装载信息的方法流程图,包括:Referring to FIG. 2, it shows a flow chart of a method for an application to obtain class loading information in a server according to the present invention, including:

步骤201、本地调用类装载器监控服务。Step 201, call the class loader monitoring service locally.

本地调用clservice的Mbean接口,向应用服务器发出获取类装载信息的请求。Call the Mbean interface of clservice locally, and send a request to the application server to obtain class loading information.

步骤202、类装载器监控服务响应,返回类装载信息。Step 202, the class loader monitors the service response and returns the class loading information.

所述应用服务器中的clservice响应所述请求,通过保存的类装载器访问并返回保存的类装载信息。The clservice in the application server responds to the request, accesses and returns the saved class loading information through the saved class loader.

所述图2所示的方法是基于本地调用,本地请求获取类装载信息,所述本地是指客户端和应用服务器运行在同一个java虚拟机(JVM)中。所述调用方法如下:The method shown in FIG. 2 is based on local calls and local requests to obtain class loading information. The local means that the client and the application server run in the same java virtual machine (JVM). The calling method is as follows:

ClassLoaderServiceMBean service=(ClassLoaderService)Config.getService(ClassLoaderService.OBJECT_NAME),获取得到一个类装载器监控服务,可以直接通过:ClassLoaderServiceMBean service=(ClassLoaderService)Config.getService(ClassLoaderService.OBJECT_NAME), to obtain a class loader monitoring service, you can directly pass:

service.getClassLoaderCount();service. getClassLoaderCount();

service.findClass(类名);service.findClass(class name);

service.findClass(类名,ClassLoader实例)访问,获取类装载信息。service.findClass (class name, ClassLoader instance) access to obtain class loading information.

参照图3,示出了本发明另一种获应用取服务器中类装载信息的方法流程图,包括:Referring to FIG. 3 , it shows a flow chart of another method for obtaining class loading information in an application server according to the present invention, including:

步骤301、客户端登录应用服务器。Step 301, the client logs in to the application server.

图3所示方法是基于远程调用,远程客户端请求获取应用服务器类装载信息,所述远程是指客户端和应用服务器不在同一个JVM中。The method shown in FIG. 3 is based on remote invocation, and the remote client requests to obtain the class loading information of the application server. The remote means that the client and the application server are not in the same JVM.

步骤302、初始化JMX连接器;Step 302, initialize the JMX connector;

JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何java应用程序中使用这些代理和服务实现管理,JMX体系被分成三层:a、表现层;b、代理层;c、分布式服务层。JMX (Java Management Extensions) is a framework for embedding management functions into applications. JMX is a set of standard agents and services. In fact, users can use these agents and services to implement management in any java application. The JMX system is divided into three layers: a, presentation layer; b, agent layer; c, distributed service layer.

步骤303、获取指定服务名的Mbean接口;Step 303, obtaining the Mbean interface of the specified service name;

步骤304、通过所述接口调用获取信息。Step 304, obtain information through the interface call.

图3方法所示的调用,都是符合JMX规范的,在这些调用中,除了符合规范的部分外,还需要指定一些配置信息:(1)登录应用服务器的jaas认证文件路径;(2)登录应用服务器的用户名/密码;(3)应用服务器的地址,在java中采用iiop协议;(4)给定Mbean名称,获取Mbean;(5)给出要获取类装载信息的类的类名。The calls shown in the method in Figure 3 are all in compliance with the JMX specification. In these calls, in addition to the part that meets the specification, some configuration information needs to be specified: (1) the path of the jaas authentication file for logging in to the application server; (2) the path for logging in to the application server User name/password of application server; (3) address of application server, adopt iiop agreement in java; (4) given Mbean name, obtain Mbean; (5) provide the class name of the class that will obtain class loading information.

参照图4、示出了本发明一种获取类装载器实例数目的方法流程图,包括本地获取和客户端远程获取,包括:Referring to FIG. 4 , it shows a flowchart of a method for obtaining the number of class loader instances of the present invention, including local acquisition and client remote acquisition, including:

步骤401、客户端/本地调用类装载器监控服务的Mbean接口,请求获取应用服务器中的类装载器实例数。Step 401, the client/local invokes the Mbean interface of the class loader monitoring service, and requests to obtain the number of class loader instances in the application server.

步骤402、类装载器监控服务响应,返回保存的类装载器实例数目。Step 402, the class loader monitors the service response, and returns the number of saved class loader instances.

参照图5、示出了本发明一种获取给定类名的类被装载时的类装载信息的方法流程图,包括:Referring to FIG. 5 , it shows a flowchart of a method for obtaining class loading information when a class with a given class name is loaded according to the present invention, including:

步骤501、客户端/本地调用类装载器监控服务的Mbean接口,进入步骤502。Step 501 , the client/local invokes the Mbean interface of the class loader monitoring service, and proceeds to step 502 .

步骤502、所述类装载器监控服务响应,进入步骤503。Step 502, the class loader monitors the service response, and proceeds to step 503.

步骤503、判断指定接口调用中是否指定具体的类装载器实例,如果没有指定的话就进入步骤504。Step 503 , judging whether a specific class loader instance is specified in the specified interface call, and if not specified, proceed to step 504 .

步骤504、遍历保存的所有类装载器实例,进入步骤505。Step 504, traverse all saved class loader instances, and go to step 505.

步骤505、判断类装载器实例是否已经装载了给定类名的类,如果没有装载给定类名的类则返回步骤504,如果已经装载了给定类名的类,则进入步骤506。Step 505, judge whether the class loader instance has loaded the class with the given class name, if not loaded the class with the given class name, then return to step 504, if the class with the given class name has been loaded, then go to step 506.

步骤506、构造类信息值对象。所述类信息包括:完整类名、类文件物理位置、被装载的classloader等外部信息,以及类本身的一些内部信息,如有哪些属性和方法、继承自哪个类、实现了什么接口等等。本发明主要关注类的外部信息,主要需要:完整类名、类文件的物理位置、装载这个类的classloader的完整类名和装载这个类的classloader实例在JVM中的唯一标示,所述唯一标示是JVM自动分配的,为一个长整形数字。Step 506, constructing a class information value object. The class information includes: external information such as complete class name, physical location of the class file, loaded classloader, and some internal information of the class itself, such as which attributes and methods it has, which class it inherits from, and which interface it implements. The present invention mainly pays attention to the external information of the class, and mainly needs: the complete class name, the physical location of the class file, the complete class name of the classloader that loads this class, and the unique mark of the classloader instance that loads this class in the JVM, and the unique mark is the JVM Automatically assigned, it is a long integer number.

步骤507、返回所述类信息值对象。Step 507, return the class information value object.

参照图6,示出了本发明另一种获取给定类名的类被装载时的类装载信息的方法流程图,包括:Referring to FIG. 6 , it shows another flow chart of the present invention for obtaining class loading information when a class with a given class name is loaded, including:

步骤601、客户端/本地调用类装载器监控服务的Mbean接口,进入步骤602。Step 601 , the client/local invokes the Mbean interface of the class loader monitoring service, and proceeds to step 602 .

步骤602、所述类装载器监控服务响应,进入步骤603。Step 602 , the class loader monitors the service response, and proceeds to step 603 .

步骤603、判断指定接口调用中是否指定具体的类装载器实例,如果没有指定的话就进入步骤604。Step 603 , judging whether a specific class loader instance is specified in the specified interface call, and if not specified, proceed to step 604 .

步骤604、遍历保存的所有类装载器实例,进入步骤605。Step 604, traverse all saved class loader instances, and go to step 605.

步骤605、判断类装载器实例是否已经装载了给定类名的类,如果没有装载给定类名的类则返回步骤604,如果已经装载了给定类名的类,则进入步骤606。Step 605 , judging whether the class loader instance has loaded the class with the given class name, if the class with the given class name has not been loaded, then return to step 604 , if the class with the given class name has been loaded, then go to step 606 .

步骤606、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径等信息,添加所述类信息值对象入类信息值对象集合。Step 606: Construct a class information value object, the class information value object includes information such as the class loader for loading the class, the physical path of the class file, etc., and add the class information value object into the class information value object set.

步骤607、判断是否还有类装载器实例,如果还有没被遍历的类装载器实例则返回步骤604,如果所有类装载器实例都遍历完成,则进入步骤608。Step 607 , judging whether there are class loader instances, if there are class loader instances that have not been traversed, return to step 604 , if all class loader instances have been traversed, proceed to step 608 .

步骤608、返回所述类信息值对象集合。Step 608, return the class information value object set.

参照图7、示出了本发明一种获取指定类名在指定的classloader中被装载的类装载信息的方法流程图,包括:Referring to Fig. 7, it shows a kind of flow chart of the method for obtaining the class loading information that the specified class name is loaded in the specified classloader of the present invention, including:

步骤701、客户端/本地调用类装载器监控服务的Mbean接口,进入步骤702。Step 701 , the client/local invokes the Mbean interface of the class loader monitoring service, and proceeds to step 702 .

步骤702、所述类装载器监控服务响应所述调用,进入步骤703。Step 702, the class loader monitoring service responds to the call, and enters step 703.

步骤703、判断指定接口调用中是否指定具体的类装载器实例,如果指定则进入步骤704。Step 703 , judging whether a specific class loader instance is specified in the specified interface call, and if so, proceed to step 704 .

步骤704、判断指定的类装载器实例是否已经装载了给定类名的类,如果没有装载给定类名的类则返回空值,已经装载了给定类名的类则进入步骤705。Step 704, judging whether the specified class loader instance has loaded the class with the given class name, if the class with the given class name has not been loaded, return a null value, and if the class with the given class name has been loaded, then enter step 705.

步骤705、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径等信息。Step 705. Construct a class information value object, which includes information such as the class loader that loads the class, the physical path of the class file, and the like.

步骤706、返回所述类信息值对象。Step 706, return the class information value object.

以上对本发明所提供的一种获取应用服务器中类装载信息的方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。Above, a method for obtaining class loading information in an application server provided by the present invention has been introduced in detail. In this paper, specific examples have been used to illustrate the principle and implementation of the present invention. The descriptions of the above embodiments are only used to help Understand the method of the present invention and its core idea; at the same time, for those of ordinary skill in the art, according to the idea of the present invention, there will be changes in the specific implementation and scope of application. In summary, the content of this specification is not It should be understood as a limitation of the present invention.

Claims (10)

1、一种获取应用服务器中类装载信息的方法,其特征在于,包括:1. A method for obtaining class loading information in an application server, comprising: 向类装载器注册侦听器;Register the listener with the class loader; 实例化类装载器时,激活所述注册的侦听器;when the class loader is instantiated, activate said registered listener; 所述侦听器接受触发并对所述触发作出响应;the listener accepts a trigger and responds to the trigger; 所述侦听器保存类装载器实例引用。The listener holds a class loader instance reference. 2、如权利要求1所述的获取应用服务器中类装载信息的方法,其特征在于,所述注册侦听器的具体步骤包括:2. The method for obtaining class loading information in an application server according to claim 1, wherein the specific steps of registering a listener include: 实现一个符合Java EE规范的Mbean类装载器监控服务;Implement an Mbean class loader monitoring service that complies with the Java EE specification; 在应用服务器的启动服务列表中配置所述类装载器监控服务;Configuring the class loader monitoring service in the startup service list of the application server; 通过所述类装载器监控服务注册侦听器。Register listeners with the class loader monitoring service. 3、如权利要求1所述的获取应用服务器中类装载信息的方法,其特征在于,所述保存的具体步骤为:3. The method for obtaining class loading information in an application server according to claim 1, wherein the specific steps of saving are: 所述侦听器将所述类装载器实例引用保存在内存的数据结构中。The listener saves the class loader instance reference in a data structure in memory. 4、如权利要求1所述的获取应用服务器中类装载信息的方法,其特征在于,还包括:4. The method for obtaining class loading information in an application server according to claim 1, further comprising: 接受本地/客户端请求,根据请求的类名,通过已保存的类装载器,访问并输出该类名对应的类装载信息。Accept the local/client request, access and output the class loading information corresponding to the class name through the saved class loader according to the requested class name. 5、如权利要求4所述的获取应用服务器中类装载信息的方法,其特征在于,所述输出类装载信息的步骤具体包括:5. The method for obtaining class loading information in an application server according to claim 4, wherein the step of outputting class loading information specifically comprises: 本地调用类装载器监控服务;Call the class loader monitoring service locally; 类装载器监控服务响应,通过保存的类装载器访问并返回保存的请求中类名对应的类装载信息。The class loader monitors the service response, accesses and returns the class loading information corresponding to the class name in the saved request through the saved class loader. 6、如权利要求4所述的获取应用服务器中类装载信息的方法,其特征在于,所述输出类装载信息的具体步骤包括:6. The method for obtaining class loading information in an application server according to claim 4, wherein said step of outputting class loading information comprises: 客户端登录应用服务器;The client logs in to the application server; 初始化JMX连接器;Initialize the JMX connector; 获取指定服务名的服务管理组件Mbean接口;Obtain the service management component Mbean interface of the specified service name; 通过所述接口调用获取信息。The information is obtained by calling the interface. 7、如权利要求5或6所述的获取应用服务器中类装载信息的方法,其特征在于,所述输出类装载信息的具体步骤包括:7. The method for obtaining class loading information in an application server according to claim 5 or 6, wherein the specific steps of outputting class loading information include: 客户端/本地调用类装载器监控服务的服务管理组件Mbean接口,请求获取应用服务器中的类装载器实例数;The client/local invokes the Mbean interface of the service management component of the class loader monitoring service to request the number of class loader instances in the application server; 类装载器监控服务响应,返回保存的类装载器实例数目。The class loader monitors the service response, returning the number of saved class loader instances. 8、如权利要求5或6所述的获取应用服务器中类装载信息的方法,其特征在于,所述输出的类装载信息的步骤具体包括:8. The method for obtaining class loading information in an application server according to claim 5 or 6, wherein the step of outputting the class loading information specifically comprises: a1、客户端/本地调用类装载器监控服务的服务管理组件Mbean接口;a1. The client/local invokes the Mbean interface of the service management component of the class loader monitoring service; a2、类装载器监控服务响应;a2. The class loader monitors the service response; a3、判断指定接口调用中是否指定具体的类装载器实例,没有指定则进入步骤a4;a3. Determine whether a specific class loader instance is specified in the specified interface call, if not specified, enter step a4; a4、遍历保存的所有类装载器实例;a4. Traverse all saved class loader instances; a5、判断类装载器实例是否已经装载了给定类名的类,否则返回步骤a4,是则进入步骤a6;a5. Determine whether the class loader instance has loaded the class with the given class name, otherwise return to step a4, and if yes, enter step a6; a6、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径;a6. Constructing a class information value object, said class information value object including the class loader for loading the class, and the physical path of the class file; a7、返回所述类信息值对象。a7. Return the class information value object. 9、如权利要求5或6所述的获取应用服务器中类装载信息的方法,其特征在于,所述输出的类装载信息的步骤具体包括:9. The method for obtaining class loading information in an application server according to claim 5 or 6, wherein the step of outputting the class loading information specifically comprises: b1、客户端/本地调用类装载器监控服务的服务管理组件Mbean接口;b1. The client/local invokes the Mbean interface of the service management component of the class loader monitoring service; b2、类装载器监控服务响应;b2. The class loader monitors the service response; b3、判断指定接口调用中是否指定具体的类装载器实例,没有指定则进入步骤b4;b3. Determine whether a specific class loader instance is specified in the specified interface call, and if not specified, enter step b4; b4、遍历保存的所有类装载器实例;b4. Traverse all saved class loader instances; b5、判断类装载器实例是否已经装载了给定类名的类,否则返回步骤b4,是则进入步骤b6;b5. Determine whether the class loader instance has loaded the class with the given class name, otherwise return to step b4, and if yes, enter step b6; b6、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径,添加所述类信息值对象入类信息值对象集合;b6, constructing the class information value object, the class information value object including the class loader for loading the class, the physical path of the class file, adding the class information value object into the class information value object collection; b7、判断是否还有类装载器实例,是则返回步骤b4,否则进入步骤b8;b7, judging whether there is a class loader instance, if yes, return to step b4, otherwise enter step b8; b8、返回所述类信息值对象集合。b8. Return the class information value object set. 10、如权利要求5或6所述的获取应用服务器中类装载信息的方法,其特征在于,所述输出的类装载信息的步骤具体包括:10. The method for obtaining class loading information in an application server according to claim 5 or 6, wherein the step of outputting the class loading information specifically comprises: c1、客户端/本地调用类装载器监控服务的服务管理组件Mbean接口;c1, the client/local calls the service management component Mbean interface of the class loader monitoring service; c2、类装载器监控服务响应;c2. The class loader monitors the service response; c3、判断指定接口调用中是否指定具体的类装载器实例,是则进入步骤c4;c3. Determine whether a specific class loader instance is specified in the specified interface call, and if so, enter step c4; c4、判断指定的类装载器实例是否已经装载了给定类名的类,否则返回空值,是则进入步骤c5;c4. Determine whether the specified class loader instance has loaded the class with the given class name, otherwise return a null value, and if so, enter step c5; c5、构造类信息值对象,所述类信息值对象包括装载该类的类装载器,类文件物理路径;c5. Constructing a class information value object, said class information value object including the class loader for loading the class, and the physical path of the class file; c6、返回所述类信息值对象。c6. Return the class information value object.
CN200710143973A 2007-08-16 2007-08-16 A Method of Obtaining Class Loading Information in Application Server Expired - Fee Related CN100595732C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200710143973A CN100595732C (en) 2007-08-16 2007-08-16 A Method of Obtaining Class Loading Information in Application Server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200710143973A CN100595732C (en) 2007-08-16 2007-08-16 A Method of Obtaining Class Loading Information in Application Server

Publications (2)

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

Family

ID=38999657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710143973A Expired - Fee Related CN100595732C (en) 2007-08-16 2007-08-16 A Method of Obtaining Class Loading Information in Application Server

Country Status (1)

Country Link
CN (1) CN100595732C (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101834750B (en) * 2009-12-29 2012-01-25 山东中创软件商用中间件股份有限公司 Method for monitoring common service
CN105718360A (en) * 2016-03-09 2016-06-29 国家电网公司 JAVA management extension fetching component and JAVA management extension fetching component realizing method
CN107133055B (en) * 2017-06-07 2020-04-24 百卓网络科技有限公司 Method for realizing customized development based on ClassLoader
CN112269638B (en) * 2020-10-29 2022-06-03 苏州浪潮智能科技有限公司 Virtual machine loading device, method and system for realizing interaction between server applications

Also Published As

Publication number Publication date
CN101105749A (en) 2008-01-16

Similar Documents

Publication Publication Date Title
US6915511B2 (en) Dynamic class reloading mechanism
US7721283B2 (en) Deploying a variety of containers in a Java 2 enterprise edition-based architecture
US8706881B2 (en) Automatic registration of enterprise resources in a dynamic module system services registry
US8661410B2 (en) Managed enterprise software components as dynamic services
US7039923B2 (en) Class dependency graph-based class loading and reloading
US7882501B1 (en) System and method for enabling dynamic modifed class reloading in an application server environment
US20030018950A1 (en) Dynamic redeploying environment for the rapid iterative development of software applications
US8856734B2 (en) Type-safe dependency injection of services into enterprise components
US9152384B2 (en) System and method for referencing a dynamic module system within a component oriented application development framework
CN1967485B (en) A method and system for realizing J2EE application
US20060294526A1 (en) Method and apparatus for generating service frameworks
JPH10124468A (en) Resource managing method and computer
EP2002334A1 (en) Xml-based transfer and a local storage of java objects
EP2002336A1 (en) Server computer component
CN104317591A (en) OSGi (open service gateway initiative)-based web interface frame system and web business processing method thereof
US7562369B1 (en) Method and system for dynamic configuration of activators in a client-server environment
Lagaisse et al. True and transparent distributed composition of aspect-components
US7421716B1 (en) System and method for providing composite applications
EP1185927A1 (en) Management of non-mbeam objects in jmx environment
US7533388B1 (en) Method and apparatus for dynamic Stubs and Ties in RMI-IIOP
CN100595732C (en) A Method of Obtaining Class Loading Information in Application Server
US7512953B1 (en) System and method for smart proxy creation and management within a distributed object-oriented architecture
US20040015540A1 (en) Modular, extendible application server that is distributed across an electronic data network and method of making same
Abdellatif Enhancing the management of a j2ee application server using a component-based architecture
US7926068B2 (en) Printing interface for a computer platform

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
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.

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

Granted publication date: 20100324