日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

The Class Loader Hierarchy--转载

發布時間:2025/4/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 The Class Loader Hierarchy--转载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Class loaders in the Application Server runtime follow a delegation hierarchy that is illustrated in the following figure and fully described inTable 2–1.

Figure 2–1 Class Loader Runtime Hierarchy


?

The following table describes the class loaders in the Application Server.

Table 2–1 Sun Java System Application Server Class Loaders

Class Loader?

Description?

Bootstrap

The Bootstrap class loader loads the basic runtime classes provided by the JVM, plus any classes from JAR files present in the system extensions directory. It is parent to the System class loader. To add JAR files to the system extensions, directory, see?Using the Java Optional Package Mechanism.

System

The System class loader loads Application Server launch classes. It is parent to the Shared Chain class loader. It is created based on the?system-classpath?attribute of the?java-config?element in the?domain.xml?file. In the Admin Console, select the Application Server component, the JVM Settings tab, and the Path Settings tab, then edit the System Classpath field. See?Using the System Class Loader?and?java-config?in?Sun Java System Application Server Platform Edition 9 Administration Reference.

Shared Chain?

The Shared Chain class loader loads most of the core Application Server classes. It is parent to the MBean class loader and the Common class loader. Classes specified by the?classpath-prefix?and?classpath-suffixattributes of the?java-config?element in the?domain.xml?file are added to this class loader. In the Admin Console, select the Application Server component, the JVM Settings tab, and the Path Settings tab, then edit the Classpath Prefix or Classpath Suffix field.

The environment classpath is included if?env-classpath-ignored="false"?is set in the?java-configelement.

Use?classpath-prefix?to place libraries ahead of Application Server implementation classes in the shared chain. The?classpath-prefix?is ideal for placing development and diagnostic patches. Use?classpath-suffix?to place libraries after implementation classes in the shared chain.

MBean

The MBean class loader loads the MBean implementation classes. See?MBean Class Loading.

Common

The Common class loader loads classes in the?domain-dir/lib/classes?directory, followed by JAR files in thedomain-dir/lib?directory. It is parent to the Connector class loader. No special classpath settings are required. The existence of these directories is optional; if they do not exist, the Common class loader is not created. See?Using the Common Class Loader.

Connector

The Connector class loader is a single class loader instance that loads individually deployed connector modules, which are shared across all applications. It is parent to the LifeCycleModule class loader and the Application class loader.?

LifeCycleModule

The LifeCycleModule class loader is created once per lifecycle module. Each?lifecycle-module?element’sclasspath?attribute is used to construct its own class loader. For more information on lifecycle modules, seeChapter?13, Developing Lifecycle Listeners.

Application

The Application class loader loads the classes in a specific enabled individually deployed module or Java EE application. One instance of this class loader is present in each class loader universe; see?Class Loader Universes. The Application class loader is created with a list of URLs that point to the locations of the classes it needs to load. It is parent to the Web class loader.

The Application class loader loads classes in the following order:?

  • Classes specified by the?library-directory?element in the?application.xml?deployment descriptor or the?–-libraries?option during deployment; see?Application-Specific Class Loading

  • Classes specified by the application's or module's?location?attribute in the?domain.xml?file, determined during deployment

  • Classes in the classpaths of the application's sub-modules

  • Classes in the application's or module's stubs directory

  • The?location?attribute points to?domain-dir/applications/j2ee-apps/app-name?or?domain-dir/applications/j2ee-modules/module-name.

    The stubs directory is?domain-dir/generated/ejb/j2ee-apps/app-name?or?domain-dir/generated/ejb/j2ee-modules/module-name.

    Web

    The Web class loader loads the servlets and other classes in a specific enabled web module or a Java EE application that contains a web module. This class loader is present in each class loader universe that contains a web module; see?Class Loader Universes. One instance is created for each web module. The Web class loader is created with a list of URLs that point to the locations of the classes it needs to load. The classes it loads are in?WEB-INF/classes?or?WEB-INF/lib/*.jar. It is parent to the JSP Engine class loader.

    JSP Engine

    The JSP Engine class loader loads compiled JSP classes of enabled JSP files. This class loader is present in each class loader universe that contains a JSP page; see?Class Loader Universes. The JSP Engine class loader is created with a list of URLs that point to the locations of the classes it needs to load.

    ?

    Note that this is not a Java inheritance hierarchy, but a delegation hierarchy. In the delegation design, a class loader delegates classloading to its parent before attempting to load a class itself. A class loader parent can be either the System class loader or another custom class loader. If the parent class loader cannot load a class, the class loader attempts to load the class itself. In effect, a class loader is responsible for loading only the classes not available to the parent. Classes loaded by a class loader higher in the hierarchy cannot refer to classes available lower in the hierarchy.

    The Java Servlet specification recommends that the Web class loader look in the local class loader before delegating to its parent. You can make the Web class loader follow the delegation inversion model in the Servlet specification by setting?delegate="false"?in the?class-loader?element of the?sun-web.xml?file. It is safe to do this only for a web module that does not interact with any other modules. For details, see?class-loader?in?Sun Java System Application Server Platform Edition 9 Application Deployment Guide.

    The default value is?delegate="true", which causes the Web class loader to delegate in the same manner as the other class loaders. You must use?delegate="true"?for a web application that accesses EJB components or that acts as a web service client or endpoint. For details about?sun-web.xml, see?The sun-web.xml File?in?Sun Java System Application Server Platform Edition 9 Application Deployment Guide.

    https://docs.oracle.com/cd/E19501-01/819-3659/beadf/index.html

    轉載于:https://www.cnblogs.com/davidwang456/p/4185120.html

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的The Class Loader Hierarchy--转载的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。