Tuesday, February 14, 2012

Class Loader Hierarchy Of An Application On Weblogic Server

Some Background Knowledge About the Java Class Loaders

When the JVM is started, three class loaders are used:

  1. Bootstrap class loader
  2. Extensions class loader
  3. System class loader

The bootstrap class loader loads the core Java libraries located in the <JAVA_HOME>/jre/lib directory. This class loader, which is part of the core JVM, is written in native code.

The extensions class loader loads the code in the extensions directories (<JAVA_HOME>/jre/lib/ext, or any other directory specified by the java.ext.dirs system property). It is implemented by the sun.misc.Launcher$ExtClassLoader class.

The system class loader loads code found on java.class.path, which maps to the CLASSPATH environment variable. This is implemented by the sun.misc.Launcher$AppClassLoader class.

The Weblogic Server and Application Configuration

This is weblogic 10.3.2. The application is deployed to the myAppwls10loc domain. There is a startup class for the domain. The domain lib directory has a jar jt400.jar.
In the command startWeblogic.cmd, two additional jars are put onto the classpath:
set CLASSPATH=C:\workshop\myclient.jar; %MAVEN_HOME%\oracle\jars\aqapi-9.0.2.jar ;%CLASSPATH%
The application is an ear. It has two modules: a war and an ejb jar. The ear has the following layout:
APP-INF
  classes
  lib
    x.jar
META-INF
myejb.jar
mywar.war

In summary, the results are the following.
  1. The classes in myclient.jar ( used by the startup class ) are loaded with the following hierarchy:
    |
    sun.misc.Launcher$ExtClassLoader@19134f4
    |
    sun.misc.Launcher$AppClassLoader@47858e
    

  2. The classes in APP-INF/lib/x.jar and the classes in myejb.jar are loaded with the following hirearchy (NOTE: their context class loaders are different though):
    |
    sun.misc.Launcher$ExtClassLoader@19134f4
     |
    sun.misc.Launcher$AppClassLoader@47858e
     |
    java.net.URLClassLoader@164dbd5
     |
    weblogic.utils.classloaders.GenericClassLoader@1db6942
     |
    weblogic.utils.classloaders.FilteringClassLoader@11f9cee
     |
    weblogic.utils.classloaders.GenericClassLoader@f8d6a6
    

  3. Add the code to print the class loader hierarchy in the jsp file in mywar.war. The output is the following:
    |
    sun.misc.Launcher$ExtClassLoader@19134f4
     |
    sun.misc.Launcher$AppClassLoader@47858e
     |
    java.net.URLClassLoader@164dbd5
     |
    weblogic.utils.classloaders.GenericClassLoader@1db6942
     |
    weblogic.utils.classloaders.FilteringClassLoader@11f9cee
     |
    weblogic.utils.classloaders.GenericClassLoader@f8d6a6
     |
    weblogic.utils.classloaders.ChangeAwareClassLoader@17b51e8
     |
    weblogic.servlet.jsp.TagFileClassLoader@18d70a6
     |
    weblogic.servlet.jsp.JspClassLoader@a3af1c
    
    You can see that this is a child class loader of the class loader that loads the classes in myejb.jar and x.jar.

Below are more details. In the following log file, the class SampleBo is in a jar that resides in the directory APP-INF/lib directory. And the class XyzMessageHandlerImpl is in myejb.jar.

The following functions are used to print out the classloader tree:

private void printClassloaders(Class clazz) {
  ClassLoader classLoader = clazz.getClassLoader();
  System.out.println("==============================");
  System.out.println("Class name:" + clazz.getName());
  printCLtree(classLoader, "");
  System.out
    .println("Thread.currentThread().getClass().getClassLoader():");
  ClassLoader cl = Thread.currentThread().getClass().getClassLoader();
  printCLtree(cl, "");
  System.out.println("==============================");
 }

 private void printCLtree(ClassLoader cl, String indent) {
  if (cl == null) {
   return;
  }
  System.out.println(indent + "ClassLoader=" + cl);
  ClassLoader pcl = cl.getParent();
  if (pcl == null) {
   System.out.println(indent + "  ClassLoader=" + pcl);
  } else {
   printCLtree(pcl, indent + "  ");
  }
 }

 public static void printClassLoaderHierarchy(Class c) {
  ClassLoader cl = c.getClassLoader();
  System.out.println("___________________START_______________________");
  System.out.println("\nClass loader tree");
  printClassLoaderTree(cl);
  System.out.println("\nContext loader tree");
  ClassLoader l = Thread.currentThread().getContextClassLoader();
  printClassLoaderTree(l);
  System.out.println("____________________END_______________________");
 }

 public static void printClassLoaderTree(ClassLoader l) {
  ClassLoader p = l.getParent();
  if (p != null)
   printClassLoaderTree(p);
  String u = "";
  if (l instanceof URLClassLoader)
   u = getURLs(((URLClassLoader) l).getURLs());
  System.out.println((new StringBuilder("\t|\n")).append(l).append(" ")
    .append(u).toString());
 }

 public static String getURLs(URL urls[]) {
  if (urls == null)
   return "{}";
  StringBuffer b = new StringBuffer("{");
  for (int i = 0; i < urls.length; i++)
   b.append(urls[i]).append(":");

  b.append("}");
  return b.toString();
 }



The following is the log file:

.
.
JAVA Memory arguments: -Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=48m  -XX:MaxPermSize=128m
.
WLS Start Mode=Development
.
CLASSPATH=C:\workshop\myclient.jar; C:/workspace/maven \oracle\jars\aqapi-9.0.2.jar ;C:\bea1032\patch_wls1032\profiles\default\sys_manifest_classpath\weblogic_patch.jar;C:\bea1032\patch_oepe1032\profiles\default\sys_manifest_classpath\weblogic_patch.jar;C:\bea1032\JDK160~1.5-3\lib\tools.jar;C:\bea1032\utils\config\10.3\config-launch.jar;C:\bea1032\WLSERV~1.3\server\lib\weblogic_sp.jar;C:\bea1032\WLSERV~1.3\server\lib\weblogic.jar;C:\bea1032\modules\features\weblogic.server.modules_10.3.2.0.jar;C:\bea1032\WLSERV~1.3\server\lib\webservices.jar;C:\bea1032\modules\ORGAPA~1.0/lib/ant-all.jar;C:\bea1032\modules\NETSFA~1.0_1/lib/ant-contrib.jar;C:\bea1032\WLSERV~1.3\common\eval\pointbase\lib\pbclient57.jar;C:\bea1032\WLSERV~1.3\server\lib\xqrl.jar
.
PATH=C:\bea1032\patch_wls1032\profiles\default\native;C:\bea1032\patch_oepe1032\profiles\default\native;C:\bea1032\WLSERV~1.3\server\native\win\32;C:\bea1032\WLSERV~1.3\server\bin;C:\bea1032\modules\ORGAPA~1.0\bin;C:\bea1032\JDK160~1.5-3\jre\bin;C:\bea1032\JDK160~1.5-3\bin;C:\bea1032\jrockit_160_14_R27.6.5-32\jre\bin;C:\Program Files\CA\SC\CAWIN\;C:\PROGRA~1\CA\SC\ETPKI\lib;C:\Program Files\Java\jdk1.6.0_14\bin;C:\Program Files\JavaFX\javafx-sdk1.3\bin;C:\Program Files\JavaFX\javafx-sdk1.3\emulator\bin;C:\Program Files\JavaFX\javafx-sdk1.2\bin;C:\Program Files\JavaFX\javafx-sdk1.2\emulator\bin;C:\Perl\site\bin;C:\Perl\bin;C:\ant\apache-ant-1.7.1\bin;C:\notes\;C:\notes\data\;C:\oracle\ora90\bin;C:\Program Files\Oracle\jre\1.1.8\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Common Files\Autodesk Shared\;C:\Program Files\Intel\DMIX;C:\Program Files\Common Files\Roxio Shared\DLLShared\;C:\apache-maven-2.2.1\bin;C:\JavaKit\j3d\bin;C:\Program Files\Borland\CaliberRM SDK 2008\lib;;C:\Program Files\SEAGULL\BlueZone\;C:\PROGRA~1\CA\SC\CAM\bin;C:\Program Files\CA\DSM\bin;C:\Program Files\CA\SC\Csam\SockAdapter\\bin;C:\Program Files\Enterprise Vault\EVClient\;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\Program Files\Subversion\bin;C:\Program Files\SSH Communications Security\SSH Secure Shell;C:\bea1032\WLSERV~1.3\server\native\win\32\oci920_8
.
***************************************************
*  To start WebLogic Server, use a username and   *
*  password assigned to an admin-level user.  For *
*  server administration, use the WebLogic Server *
*  console at http:\\hostname:port\console        *
***************************************************
starting weblogic with Java version:
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode)
Starting WLS with line:
C:\bea1032\JDK160~1.5-3\bin\java -client   -Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=48m  -XX:MaxPermSize=128m -Dweblogic.Name=myAppAdminServer -Djava.security.policy=C:\bea1032\WLSERV~1.3\server\lib\weblogic.policy  -Xverify:none  -da -Dplatform.home=C:\bea1032\WLSERV~1.3 -Dwls.home=C:\bea1032\WLSERV~1.3\server -Dweblogic.home=C:\bea1032\WLSERV~1.3\server   -Dweblogic.management.discover=true  -Dwlw.iterativeDev= -Dwlw.testConsole= -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=C:\bea1032\patch_wls1032\profiles\default\sysext_manifest_classpath;C:\bea1032\patch_oepe1032\profiles\default\sysext_manifest_classpath  weblogic.Server
<Feb 14, 2012 10:01:54 AM EST> <Notice> <WebLogicServer> <BEA-000395> <Following extensions directory contents added to the end of the classpath:
C:\bea1032\user_projects\domains\myAppwls10loc\lib\jt400.jar> 
<Feb 14, 2012 10:01:54 AM EST> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Java HotSpot(TM) Client VM Version 14.0-b16 from Sun Microsystems Inc.> 
<Feb 14, 2012 10:01:55 AM EST> <Info> <Management> <BEA-141107> <Version: WebLogic Server 10.3.2.0  Tue Oct 20 12:16:15 PDT 2009 1267925 > 
<Feb 14, 2012 10:01:58 AM EST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING> 
<Feb 14, 2012 10:01:58 AM EST> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool> 
<Feb 14, 2012 10:01:59 AM EST> <Notice> <LoggingService> <BEA-320400> <The log file C:\bea1032\user_projects\domains\myAppwls10loc\servers\myAppAdminServer\logs\myAppAdminServer.log will be rotated. Reopen the log file if tailing has stopped. This can happen on some platforms like Windows.> 
<Feb 14, 2012 10:01:59 AM EST> <Notice> <LoggingService> <BEA-320401> <The log file has been rotated to C:\bea1032\user_projects\domains\myAppwls10loc\servers\myAppAdminServer\logs\myAppAdminServer.log00138. Log messages will continue to be logged in C:\bea1032\user_projects\domains\myAppwls10loc\servers\myAppAdminServer\logs\myAppAdminServer.log.> 
<Feb 14, 2012 10:01:59 AM EST> <Notice> <Log Management> <BEA-170019> <The server log file C:\bea1032\user_projects\domains\myAppwls10loc\servers\myAppAdminServer\logs\myAppAdminServer.log is opened. All server side log events will be written to this file.> 
<Feb 14, 2012 10:02:07 AM EST> <Notice> <Security> <BEA-090082> <Security initializing using security realm myrealm.> 
<Feb 14, 2012 10:02:11 AM EST> <Notice> <LoggingService> <BEA-320400> <The log file C:\bea1032\user_projects\domains\myAppwls10loc\servers\myAppAdminServer\logs\access.log will be rotated. Reopen the log file if tailing has stopped. This can happen on some platforms like Windows.> 
<Feb 14, 2012 10:02:11 AM EST> <Notice> <LoggingService> <BEA-320401> <The log file has been rotated to C:\bea1032\user_projects\domains\myAppwls10loc\servers\myAppAdminServer\logs\access.log00080. Log messages will continue to be logged in C:\bea1032\user_projects\domains\myAppwls10loc\servers\myAppAdminServer\logs\access.log.> 
TimerStartUp static block

Class loader tree
 |
sun.misc.Launcher$ExtClassLoader@19134f4 {
file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/dnsns.jar:
file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/localedata.jar:
file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunjce_provider.jar:
file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunmscapi.jar:
file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunpkcs11.jar:}
 |
sun.misc.Launcher$AppClassLoader@47858e {
file:/C:/workshop/myclient.jar:
file:/C:/bea1032/user_projects/domains/myAppwls10loc/%20C:/workspace/maven%20/oracle/jars/aqapi-9.0.2.jar%20:
file:/C:/bea1032/patch_wls1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:
file:/C:/bea1032/patch_oepe1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:
file:/C:/bea1032/jdk160_14_R27.6.5-32/lib/tools.jar:
file:/C:/bea1032/utils/config/10.3/config-launch.jar:
file:/C:/bea1032/wlserver_10.3/server/lib/weblogic_sp.jar:
file:/C:/bea1032/wlserver_10.3/server/lib/weblogic.jar:
file:/C:/bea1032/modules/features/weblogic.server.modules_10.3.2.0.jar:
file:/C:/bea1032/wlserver_10.3/server/lib/webservices.jar:
file:/C:/bea1032/modules/org.apache.ant_1.7.0/lib/ant-all.jar:
file:/C:/bea1032/modules/net.sf.antcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar:
file:/C:/bea1032/wlserver_10.3/common/eval/pointbase/lib/pbclient57.jar:
file:/C:/bea1032/wlserver_10.3/server/lib/xqrl.jar:}

Context loader tree
 |
sun.misc.Launcher$ExtClassLoader@19134f4 {
file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/dnsns.jar:
file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/localedata.jar:
file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunjce_provider.jar:
file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunmscapi.jar:
file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunpkcs11.jar:}
 |
sun.misc.Launcher$AppClassLoader@47858e {
file:/C:/workshop/myclient.jar:
file:/C:/bea1032/user_projects/domains/myAppwls10loc/%20C:/workspace/maven%20/oracle/jars/aqapi-9.0.2.jar%20:
file:/C:/bea1032/patch_wls1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:
file:/C:/bea1032/patch_oepe1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:
file:/C:/bea1032/jdk160_14_R27.6.5-32/lib/tools.jar:
file:/C:/bea1032/utils/config/10.3/config-launch.jar:
file:/C:/bea1032/wlserver_10.3/server/lib/weblogic_sp.jar:
file:/C:/bea1032/wlserver_10.3/server/lib/weblogic.jar:
file:/C:/bea1032/modules/features/weblogic.server.modules_10.3.2.0.jar:
file:/C:/bea1032/wlserver_10.3/server/lib/webservices.jar:
file:/C:/bea1032/modules/org.apache.ant_1.7.0/lib/ant-all.jar:
file:/C:/bea1032/modules/net.sf.antcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar:
file:/C:/bea1032/wlserver_10.3/common/eval/pointbase/lib/pbclient57.jar:
file:/C:/bea1032/wlserver_10.3/server/lib/xqrl.jar:}
 |
java.net.URLClassLoader@164dbd5 {
file:/C:/bea1032/user_projects/domains/myAppwls10loc/lib/jt400.jar:}

Tue Feb 14 10:02:11 EST 2012; INFO: binding to jnditree [t3://localhost:7001]
Tue Feb 14 10:02:11 EST 2012; INFO: binding fakequeue [App1Queue] as [javax.naming.InitialContext@1fd9726]
Tue Feb 14 10:02:11 EST 2012; INFO: timeout set [100] to [javax.naming.InitialContext@1fd9726]
Tue Feb 14 10:02:11 EST 2012; INFO: create queueconnection [timeout=100] as [com.myapp.messaging.aq.qfc.FakeQueueConnectionFactory@e0c07c]
Tue Feb 14 10:02:11 EST 2012INFO:  start connection[null] closed[false]
Tue Feb 14 10:02:11 EST 2012; INFO: binding fakefactory [App1ConnectionFactory] as [com.myapp.messaging.aq.qfc.FakeQueueConnectionFactory@e0c07c]
Tue Feb 14 10:02:11 EST 2012; INFO: creating fakeconnct [] as [com.myapp.messaging.aq.qfc.FakeQueueConnection@18a8bfasession=nullclosed=falsesession_list=0]
Tue Feb 14 10:02:11 EST 2012; INFO: TimerStartup [finished]
<Feb 14, 2012 10:02:16 AM EST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STANDBY> 
<Feb 14, 2012 10:02:16 AM EST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING> 
==============================
Class name:com.myapp.business.sample.SampleBo
ClassLoader=weblogic.utils.classloaders.GenericClassLoader@f8d6a6 finder: weblogic.utils.classloaders.CodeGenClassFinder@8f53c8 annotation: myApp@
  ClassLoader=weblogic.utils.classloaders.FilteringClassLoader@11f9cee finder: weblogic.utils.classloaders.CodeGenClassFinder@77e77a annotation: 
    ClassLoader=weblogic.utils.classloaders.GenericClassLoader@1db6942 finder: weblogic.utils.classloaders.CodeGenClassFinder@1fe2c10 annotation: 
      ClassLoader=java.net.URLClassLoader@164dbd5
        ClassLoader=sun.misc.Launcher$AppClassLoader@47858e
          ClassLoader=sun.misc.Launcher$ExtClassLoader@19134f4
            ClassLoader=null
Thread.currentThread().getClass().getClassLoader():
ClassLoader=sun.misc.Launcher$AppClassLoader@47858e
  ClassLoader=sun.misc.Launcher$ExtClassLoader@19134f4
    ClassLoader=null
==============================
___________________START_______________________

Class loader tree
 |
sun.misc.Launcher$ExtClassLoader@19134f4 {file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/dnsns.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/localedata.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunjce_provider.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunmscapi.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunpkcs11.jar:}
 |
sun.misc.Launcher$AppClassLoader@47858e {file:/C:/workshop/myclient.jar:file:/C:/bea1032/user_projects/domains/myAppwls10loc/%20C:/workspace/maven%20/oracle/jars/aqapi-9.0.2.jar%20:file:/C:/bea1032/patch_wls1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/patch_oepe1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/lib/tools.jar:file:/C:/bea1032/utils/config/10.3/config-launch.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic_sp.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic.jar:file:/C:/bea1032/modules/features/weblogic.server.modules_10.3.2.0.jar:file:/C:/bea1032/wlserver_10.3/server/lib/webservices.jar:file:/C:/bea1032/modules/org.apache.ant_1.7.0/lib/ant-all.jar:file:/C:/bea1032/modules/net.sf.antcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar:file:/C:/bea1032/wlserver_10.3/common/eval/pointbase/lib/pbclient57.jar:file:/C:/bea1032/wlserver_10.3/server/lib/xqrl.jar:}
 |
java.net.URLClassLoader@164dbd5 {file:/C:/bea1032/user_projects/domains/myAppwls10loc/lib/jt400.jar:}
 |
weblogic.utils.classloaders.GenericClassLoader@1db6942 finder: weblogic.utils.classloaders.CodeGenClassFinder@1fe2c10 annotation:  
 |
weblogic.utils.classloaders.FilteringClassLoader@11f9cee finder: weblogic.utils.classloaders.CodeGenClassFinder@77e77a annotation:  
 |
weblogic.utils.classloaders.GenericClassLoader@f8d6a6 finder: weblogic.utils.classloaders.CodeGenClassFinder@8f53c8 annotation: myApp@ 

Context loader tree
 |
sun.misc.Launcher$ExtClassLoader@19134f4 {file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/dnsns.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/localedata.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunjce_provider.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunmscapi.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunpkcs11.jar:}
 |
sun.misc.Launcher$AppClassLoader@47858e {file:/C:/workshop/myclient.jar:file:/C:/bea1032/user_projects/domains/myAppwls10loc/%20C:/workspace/maven%20/oracle/jars/aqapi-9.0.2.jar%20:file:/C:/bea1032/patch_wls1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/patch_oepe1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/lib/tools.jar:file:/C:/bea1032/utils/config/10.3/config-launch.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic_sp.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic.jar:file:/C:/bea1032/modules/features/weblogic.server.modules_10.3.2.0.jar:file:/C:/bea1032/wlserver_10.3/server/lib/webservices.jar:file:/C:/bea1032/modules/org.apache.ant_1.7.0/lib/ant-all.jar:file:/C:/bea1032/modules/net.sf.antcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar:file:/C:/bea1032/wlserver_10.3/common/eval/pointbase/lib/pbclient57.jar:file:/C:/bea1032/wlserver_10.3/server/lib/xqrl.jar:}
 |
java.net.URLClassLoader@164dbd5 {file:/C:/bea1032/user_projects/domains/myAppwls10loc/lib/jt400.jar:}
 |
weblogic.utils.classloaders.GenericClassLoader@1db6942 finder: weblogic.utils.classloaders.CodeGenClassFinder@1fe2c10 annotation:  
 |
weblogic.utils.classloaders.FilteringClassLoader@11f9cee finder: weblogic.utils.classloaders.CodeGenClassFinder@77e77a annotation:  
 |
weblogic.utils.classloaders.GenericClassLoader@f8d6a6 finder: weblogic.utils.classloaders.CodeGenClassFinder@8f53c8 annotation: myApp@ 
 |
weblogic.utils.classloaders.ChangeAwareClassLoader@17b51e8 finder: weblogic.utils.classloaders.CodeGenClassFinder@1ad65f7 annotation: myApp@myApp 
____________________END_______________________
==============================
Class name:com.myapp.business.sample.SampleBo
ClassLoader=weblogic.utils.classloaders.GenericClassLoader@f8d6a6 finder: weblogic.utils.classloaders.CodeGenClassFinder@8f53c8 annotation: myApp@
  ClassLoader=weblogic.utils.classloaders.FilteringClassLoader@11f9cee finder: weblogic.utils.classloaders.CodeGenClassFinder@77e77a annotation: 
    ClassLoader=weblogic.utils.classloaders.GenericClassLoader@1db6942 finder: weblogic.utils.classloaders.CodeGenClassFinder@1fe2c10 annotation: 
      ClassLoader=java.net.URLClassLoader@164dbd5
        ClassLoader=sun.misc.Launcher$AppClassLoader@47858e
          ClassLoader=sun.misc.Launcher$ExtClassLoader@19134f4
            ClassLoader=null
Thread.currentThread().getClass().getClassLoader():
ClassLoader=sun.misc.Launcher$AppClassLoader@47858e
  ClassLoader=sun.misc.Launcher$ExtClassLoader@19134f4
    ClassLoader=null
==============================
___________________START_______________________

Class loader tree
 |
sun.misc.Launcher$ExtClassLoader@19134f4 {file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/dnsns.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/localedata.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunjce_provider.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunmscapi.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunpkcs11.jar:}
 |
sun.misc.Launcher$AppClassLoader@47858e {file:/C:/workshop/myclient.jar:file:/C:/bea1032/user_projects/domains/myAppwls10loc/%20C:/workspace/maven%20/oracle/jars/aqapi-9.0.2.jar%20:file:/C:/bea1032/patch_wls1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/patch_oepe1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/lib/tools.jar:file:/C:/bea1032/utils/config/10.3/config-launch.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic_sp.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic.jar:file:/C:/bea1032/modules/features/weblogic.server.modules_10.3.2.0.jar:file:/C:/bea1032/wlserver_10.3/server/lib/webservices.jar:file:/C:/bea1032/modules/org.apache.ant_1.7.0/lib/ant-all.jar:file:/C:/bea1032/modules/net.sf.antcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar:file:/C:/bea1032/wlserver_10.3/common/eval/pointbase/lib/pbclient57.jar:file:/C:/bea1032/wlserver_10.3/server/lib/xqrl.jar:}
 |
java.net.URLClassLoader@164dbd5 {file:/C:/bea1032/user_projects/domains/myAppwls10loc/lib/jt400.jar:}
 |
weblogic.utils.classloaders.GenericClassLoader@1db6942 finder: weblogic.utils.classloaders.CodeGenClassFinder@1fe2c10 annotation:  
 |
weblogic.utils.classloaders.FilteringClassLoader@11f9cee finder: weblogic.utils.classloaders.CodeGenClassFinder@77e77a annotation:  
 |
weblogic.utils.classloaders.GenericClassLoader@f8d6a6 finder: weblogic.utils.classloaders.CodeGenClassFinder@8f53c8 annotation: myApp@ 

Context loader tree
 |
sun.misc.Launcher$ExtClassLoader@19134f4 {file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/dnsns.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/localedata.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunjce_provider.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunmscapi.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunpkcs11.jar:}
 |
sun.misc.Launcher$AppClassLoader@47858e {file:/C:/workshop/myclient.jar:file:/C:/bea1032/user_projects/domains/myAppwls10loc/%20C:/workspace/maven%20/oracle/jars/aqapi-9.0.2.jar%20:file:/C:/bea1032/patch_wls1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/patch_oepe1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/lib/tools.jar:file:/C:/bea1032/utils/config/10.3/config-launch.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic_sp.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic.jar:file:/C:/bea1032/modules/features/weblogic.server.modules_10.3.2.0.jar:file:/C:/bea1032/wlserver_10.3/server/lib/webservices.jar:file:/C:/bea1032/modules/org.apache.ant_1.7.0/lib/ant-all.jar:file:/C:/bea1032/modules/net.sf.antcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar:file:/C:/bea1032/wlserver_10.3/common/eval/pointbase/lib/pbclient57.jar:file:/C:/bea1032/wlserver_10.3/server/lib/xqrl.jar:}
 |
java.net.URLClassLoader@164dbd5 {file:/C:/bea1032/user_projects/domains/myAppwls10loc/lib/jt400.jar:}
 |
weblogic.utils.classloaders.GenericClassLoader@1db6942 finder: weblogic.utils.classloaders.CodeGenClassFinder@1fe2c10 annotation:  
 |
weblogic.utils.classloaders.FilteringClassLoader@11f9cee finder: weblogic.utils.classloaders.CodeGenClassFinder@77e77a annotation:  
 |
weblogic.utils.classloaders.GenericClassLoader@f8d6a6 finder: weblogic.utils.classloaders.CodeGenClassFinder@8f53c8 annotation: myApp@ 
 |
weblogic.utils.classloaders.ChangeAwareClassLoader@17b51e8 finder: weblogic.utils.classloaders.CodeGenClassFinder@1ad65f7 annotation: myApp@myApp 
____________________END_______________________
<Feb 14, 2012 10:02:54 AM EST> <Notice> <LoggingService> <BEA-320400> <The log file C:\bea1032\user_projects\domains\myAppwls10loc\servers\myAppAdminServer\logs\myAppwls10loc.log will be rotated. Reopen the log file if tailing has stopped. This can happen on some platforms like Windows.> 
<Feb 14, 2012 10:02:54 AM EST> <Notice> <LoggingService> <BEA-320401> <The log file has been rotated to C:\bea1032\user_projects\domains\myAppwls10loc\servers\myAppAdminServer\logs\myAppwls10loc.log00095. Log messages will continue to be logged in C:\bea1032\user_projects\domains\myAppwls10loc\servers\myAppAdminServer\logs\myAppwls10loc.log.> 
<Feb 14, 2012 10:02:54 AM EST> <Notice> <Log Management> <BEA-170027> <The Server has established connection with the Domain level Diagnostic Service successfully.> 
<Feb 14, 2012 10:02:54 AM EST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to ADMIN> 
<Feb 14, 2012 10:02:54 AM EST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING> 
<Feb 14, 2012 10:02:54 AM EST> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 10.77.121.138:7001 for protocols iiop, t3, ldap, snmp, http.> 
<Feb 14, 2012 10:02:54 AM EST> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on 127.0.0.1:7001 for protocols iiop, t3, ldap, snmp, http.> 
<Feb 14, 2012 10:02:54 AM EST> <Notice> <WebLogicServer> <BEA-000331> <Started WebLogic Admin Server "myAppAdminServer" for domain "myAppwls10loc" running in Development Mode> 
Tue Feb 14 10:02:56 EST 2012; INFO: create queueconnection [timeout=100] as [com.myapp.messaging.aq.qfc.FakeQueueConnectionFactory@1620d83]
==============================
Class name:com.myapp.messaging.aq.qfc.FakeQueueConnection
ClassLoader=sun.misc.Launcher$AppClassLoader@47858e
  ClassLoader=sun.misc.Launcher$ExtClassLoader@19134f4
    ClassLoader=null
Thread.currentThread().getClass().getClassLoader():
ClassLoader=sun.misc.Launcher$AppClassLoader@47858e
  ClassLoader=sun.misc.Launcher$ExtClassLoader@19134f4
    ClassLoader=null
==============================
___________________START_______________________

Class loader tree
 |
sun.misc.Launcher$ExtClassLoader@19134f4 {file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/dnsns.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/localedata.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunjce_provider.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunmscapi.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunpkcs11.jar:}
 |
sun.misc.Launcher$AppClassLoader@47858e {file:/C:/workshop/myclient.jar:file:/C:/bea1032/user_projects/domains/myAppwls10loc/%20C:/workspace/maven%20/oracle/jars/aqapi-9.0.2.jar%20:file:/C:/bea1032/patch_wls1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/patch_oepe1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/lib/tools.jar:file:/C:/bea1032/utils/config/10.3/config-launch.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic_sp.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic.jar:file:/C:/bea1032/modules/features/weblogic.server.modules_10.3.2.0.jar:file:/C:/bea1032/wlserver_10.3/server/lib/webservices.jar:file:/C:/bea1032/modules/org.apache.ant_1.7.0/lib/ant-all.jar:file:/C:/bea1032/modules/net.sf.antcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar:file:/C:/bea1032/wlserver_10.3/common/eval/pointbase/lib/pbclient57.jar:file:/C:/bea1032/wlserver_10.3/server/lib/xqrl.jar:}

Context loader tree
 |
sun.misc.Launcher$ExtClassLoader@19134f4 {file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/dnsns.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/localedata.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunjce_provider.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunmscapi.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunpkcs11.jar:}
 |
sun.misc.Launcher$AppClassLoader@47858e {file:/C:/workshop/myclient.jar:file:/C:/bea1032/user_projects/domains/myAppwls10loc/%20C:/workspace/maven%20/oracle/jars/aqapi-9.0.2.jar%20:file:/C:/bea1032/patch_wls1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/patch_oepe1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/lib/tools.jar:file:/C:/bea1032/utils/config/10.3/config-launch.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic_sp.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic.jar:file:/C:/bea1032/modules/features/weblogic.server.modules_10.3.2.0.jar:file:/C:/bea1032/wlserver_10.3/server/lib/webservices.jar:file:/C:/bea1032/modules/org.apache.ant_1.7.0/lib/ant-all.jar:file:/C:/bea1032/modules/net.sf.antcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar:file:/C:/bea1032/wlserver_10.3/common/eval/pointbase/lib/pbclient57.jar:file:/C:/bea1032/wlserver_10.3/server/lib/xqrl.jar:}
 |
java.net.URLClassLoader@164dbd5 {file:/C:/bea1032/user_projects/domains/myAppwls10loc/lib/jt400.jar:}
 |
weblogic.utils.classloaders.GenericClassLoader@1db6942 finder: weblogic.utils.classloaders.CodeGenClassFinder@1fe2c10 annotation:  
 |
weblogic.utils.classloaders.FilteringClassLoader@11f9cee finder: weblogic.utils.classloaders.CodeGenClassFinder@77e77a annotation:  
 |
weblogic.utils.classloaders.GenericClassLoader@f8d6a6 finder: weblogic.utils.classloaders.CodeGenClassFinder@8f53c8 annotation: myApp@ 
 |
weblogic.utils.classloaders.GenericClassLoader@fcfd10 finder: weblogic.utils.classloaders.CodeGenClassFinder@1d1bb4d annotation: myApp@ 
____________________END_______________________
Tue Feb 14 10:02:56 EST 2012; INFO:  construct queueSession
Tue Feb 14 10:02:56 EST 2012; INFO:  scheduling delayed start[5000ms], timeout[100ms] session[com.myapp.messaging.aq.qfc.FakeQueueSession@17b3b61queue=nullmessageListener=nullstopped=false]
Tue Feb 14 10:02:56 EST 2012; INFO:  session#1, queueSession created[com.myapp.messaging.aq.qfc.FakeQueueConnection@97cd75session=com.myapp.messaging.aq.qfc.FakeQueueSession@17b3b61queue=nullmessageListener=nullstopped=falseclosed=falsesession_list=1]
Tue Feb 14 10:02:56 EST 2012; INFO:  setMessageListener(weblogic.ejb.container.internal.MDListener@1598d5f)
Tue Feb 14 10:02:56 EST 2012INFO:  start connection[null] closed[false]
<Feb 14, 2012 10:02:57 AM EST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING> 
<Feb 14, 2012 10:02:57 AM EST> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode> 
<Feb 14, 2012 10:03:01 AM EST> <Warning> <JMX> <BEA-149517> <An attempt was made to unregister an mbean that was already unregistered: weblogic.servlet.internal.ServletRuntimeMBeanImpl@bb303> 
------------------------
classLoader=weblogic.servlet.jsp.JspClassLoader@a3af1c finder: weblogic.utils.classloaders.CodeGenClassFinder@1ed70df annotation: 
  classLoader=weblogic.servlet.jsp.TagFileClassLoader@18d70a6 finder: weblogic.utils.classloaders.CodeGenClassFinder@deaa44 annotation: 
    classLoader=weblogic.utils.classloaders.ChangeAwareClassLoader@17b51e8 finder: weblogic.utils.classloaders.CodeGenClassFinder@1ad65f7 annotation: myApp@myApp
      classLoader=weblogic.utils.classloaders.GenericClassLoader@f8d6a6 finder: weblogic.utils.classloaders.CodeGenClassFinder@8f53c8 annotation: myApp@
        classLoader=weblogic.utils.classloaders.FilteringClassLoader@11f9cee finder: weblogic.utils.classloaders.CodeGenClassFinder@77e77a annotation: 
          classLoader=weblogic.utils.classloaders.GenericClassLoader@1db6942 finder: weblogic.utils.classloaders.CodeGenClassFinder@1fe2c10 annotation: 
            classLoader=java.net.URLClassLoader@164dbd5
              classLoader=sun.misc.Launcher$AppClassLoader@47858e
                classLoader=sun.misc.Launcher$ExtClassLoader@19134f4
                  classLoader=null
classLoader=null now
------------------------
___________________START_______________________

Class loader tree
 |
sun.misc.Launcher$ExtClassLoader@19134f4 {file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/dnsns.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/localedata.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunjce_provider.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunmscapi.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunpkcs11.jar:}
 |
sun.misc.Launcher$AppClassLoader@47858e {file:/C:/workshop/myclient.jar:file:/C:/bea1032/user_projects/domains/myAppwls10loc/%20C:/workspace/maven%20/oracle/jars/aqapi-9.0.2.jar%20:file:/C:/bea1032/patch_wls1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/patch_oepe1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/lib/tools.jar:file:/C:/bea1032/utils/config/10.3/config-launch.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic_sp.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic.jar:file:/C:/bea1032/modules/features/weblogic.server.modules_10.3.2.0.jar:file:/C:/bea1032/wlserver_10.3/server/lib/webservices.jar:file:/C:/bea1032/modules/org.apache.ant_1.7.0/lib/ant-all.jar:file:/C:/bea1032/modules/net.sf.antcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar:file:/C:/bea1032/wlserver_10.3/common/eval/pointbase/lib/pbclient57.jar:file:/C:/bea1032/wlserver_10.3/server/lib/xqrl.jar:}
 |
java.net.URLClassLoader@164dbd5 {file:/C:/bea1032/user_projects/domains/myAppwls10loc/lib/jt400.jar:}
 |
weblogic.utils.classloaders.GenericClassLoader@1db6942 finder: weblogic.utils.classloaders.CodeGenClassFinder@1fe2c10 annotation:  
 |
weblogic.utils.classloaders.FilteringClassLoader@11f9cee finder: weblogic.utils.classloaders.CodeGenClassFinder@77e77a annotation:  
 |
weblogic.utils.classloaders.GenericClassLoader@f8d6a6 finder: weblogic.utils.classloaders.CodeGenClassFinder@8f53c8 annotation: myApp@ 
 |
weblogic.utils.classloaders.ChangeAwareClassLoader@17b51e8 finder: weblogic.utils.classloaders.CodeGenClassFinder@1ad65f7 annotation: myApp@myApp 
 |
weblogic.servlet.jsp.TagFileClassLoader@18d70a6 finder: weblogic.utils.classloaders.CodeGenClassFinder@deaa44 annotation:  
 |
weblogic.servlet.jsp.JspClassLoader@a3af1c finder: weblogic.utils.classloaders.CodeGenClassFinder@1ed70df annotation:  

Context loader tree
 |
sun.misc.Launcher$ExtClassLoader@19134f4 {file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/dnsns.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/localedata.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunjce_provider.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunmscapi.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunpkcs11.jar:}
 |
sun.misc.Launcher$AppClassLoader@47858e {file:/C:/workshop/myclient.jar:file:/C:/bea1032/user_projects/domains/myAppwls10loc/%20C:/workspace/maven%20/oracle/jars/aqapi-9.0.2.jar%20:file:/C:/bea1032/patch_wls1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/patch_oepe1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/lib/tools.jar:file:/C:/bea1032/utils/config/10.3/config-launch.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic_sp.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic.jar:file:/C:/bea1032/modules/features/weblogic.server.modules_10.3.2.0.jar:file:/C:/bea1032/wlserver_10.3/server/lib/webservices.jar:file:/C:/bea1032/modules/org.apache.ant_1.7.0/lib/ant-all.jar:file:/C:/bea1032/modules/net.sf.antcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar:file:/C:/bea1032/wlserver_10.3/common/eval/pointbase/lib/pbclient57.jar:file:/C:/bea1032/wlserver_10.3/server/lib/xqrl.jar:}
 |
java.net.URLClassLoader@164dbd5 {file:/C:/bea1032/user_projects/domains/myAppwls10loc/lib/jt400.jar:}
 |
weblogic.utils.classloaders.GenericClassLoader@1db6942 finder: weblogic.utils.classloaders.CodeGenClassFinder@1fe2c10 annotation:  
 |
weblogic.utils.classloaders.FilteringClassLoader@11f9cee finder: weblogic.utils.classloaders.CodeGenClassFinder@77e77a annotation:  
 |
weblogic.utils.classloaders.GenericClassLoader@f8d6a6 finder: weblogic.utils.classloaders.CodeGenClassFinder@8f53c8 annotation: myApp@ 
 |
weblogic.utils.classloaders.ChangeAwareClassLoader@17b51e8 finder: weblogic.utils.classloaders.CodeGenClassFinder@1ad65f7 annotation: myApp@myApp 
____________________END_______________________



Class loaders for the class in APP-INF/lib and myejb.jar

In another test, I found the class loader that loads the class in the EJB module is the same as the one that loads the classes in the jars in the APP-INF/lib directory. In this test, there is no jar in the lib directory of the domain:C:/bea1032/user_projects/domains/myAppwls10loc/lib
The following is the log for the class in APP-INF/lib:
==============================
Class name:com.myapp.business.sample.SampleBo
ClassLoader=weblogic.utils.classloaders.GenericClassLoader@48268a finder: weblogic.utils.classloaders.CodeGenClassFinder@10e0edb annotation: myApp@
  ClassLoader=weblogic.utils.classloaders.FilteringClassLoader@38bbd7 finder: weblogic.utils.classloaders.CodeGenClassFinder@b44131 annotation: 
    ClassLoader=weblogic.utils.classloaders.GenericClassLoader@5b78cf finder: weblogic.utils.classloaders.CodeGenClassFinder@241f4e annotation: 
      ClassLoader=sun.misc.Launcher$AppClassLoader@47858e
        ClassLoader=sun.misc.Launcher$ExtClassLoader@19134f4
          ClassLoader=null
Thread.currentThread().getClass().getClassLoader():
ClassLoader=sun.misc.Launcher$AppClassLoader@47858e
  ClassLoader=sun.misc.Launcher$ExtClassLoader@19134f4
    ClassLoader=null
==============================
___________________START_______________________

Class loader tree
 |
sun.misc.Launcher$ExtClassLoader@19134f4 {file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/dnsns.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/localedata.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunjce_provider.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunmscapi.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunpkcs11.jar:}
 |
sun.misc.Launcher$AppClassLoader@47858e {file:/C:/workshop/myclient.jar:file:/C:/bea1032/user_projects/domains/myAppwls10loc/%20C:/workspace/maven%20/oracle/jars/aqapi-9.0.2.jar%20:file:/C:/bea1032/patch_wls1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/patch_oepe1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/lib/tools.jar:file:/C:/bea1032/utils/config/10.3/config-launch.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic_sp.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic.jar:file:/C:/bea1032/modules/features/weblogic.server.modules_10.3.2.0.jar:file:/C:/bea1032/wlserver_10.3/server/lib/webservices.jar:file:/C:/bea1032/modules/org.apache.ant_1.7.0/lib/ant-all.jar:file:/C:/bea1032/modules/net.sf.antcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar:file:/C:/bea1032/wlserver_10.3/common/eval/pointbase/lib/pbclient57.jar:file:/C:/bea1032/wlserver_10.3/server/lib/xqrl.jar:}
 |
weblogic.utils.classloaders.GenericClassLoader@5b78cf finder: weblogic.utils.classloaders.CodeGenClassFinder@241f4e annotation:  
 |
weblogic.utils.classloaders.FilteringClassLoader@38bbd7 finder: weblogic.utils.classloaders.CodeGenClassFinder@b44131 annotation:  
 |
weblogic.utils.classloaders.GenericClassLoader@48268a finder: weblogic.utils.classloaders.CodeGenClassFinder@10e0edb annotation: myApp@ 

Context loader tree
 |
sun.misc.Launcher$ExtClassLoader@19134f4 {file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/dnsns.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/localedata.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunjce_provider.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunmscapi.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunpkcs11.jar:}
 |
sun.misc.Launcher$AppClassLoader@47858e {file:/C:/workshop/myclient.jar:file:/C:/bea1032/user_projects/domains/myAppwls10loc/%20C:/workspace/maven%20/oracle/jars/aqapi-9.0.2.jar%20:file:/C:/bea1032/patch_wls1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/patch_oepe1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/lib/tools.jar:file:/C:/bea1032/utils/config/10.3/config-launch.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic_sp.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic.jar:file:/C:/bea1032/modules/features/weblogic.server.modules_10.3.2.0.jar:file:/C:/bea1032/wlserver_10.3/server/lib/webservices.jar:file:/C:/bea1032/modules/org.apache.ant_1.7.0/lib/ant-all.jar:file:/C:/bea1032/modules/net.sf.antcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar:file:/C:/bea1032/wlserver_10.3/common/eval/pointbase/lib/pbclient57.jar:file:/C:/bea1032/wlserver_10.3/server/lib/xqrl.jar:}
 |
weblogic.utils.classloaders.GenericClassLoader@5b78cf finder: weblogic.utils.classloaders.CodeGenClassFinder@241f4e annotation:  
 |
weblogic.utils.classloaders.FilteringClassLoader@38bbd7 finder: weblogic.utils.classloaders.CodeGenClassFinder@b44131 annotation:  
 |
weblogic.utils.classloaders.GenericClassLoader@48268a finder: weblogic.utils.classloaders.CodeGenClassFinder@10e0edb annotation: myApp@ 
 |
weblogic.utils.classloaders.ChangeAwareClassLoader@faaa93 finder: weblogic.utils.classloaders.CodeGenClassFinder@5532da annotation: myApp@myApp 
____________________END_______________________

And the following is the log for the class in myejb.jar:
==============================
Class name:com.myapp.messaging.xyz.XyzMessageHandlerImpl
ClassLoader=weblogic.utils.classloaders.GenericClassLoader@48268a finder: weblogic.utils.classloaders.CodeGenClassFinder@10e0edb annotation: myApp@
  ClassLoader=weblogic.utils.classloaders.FilteringClassLoader@38bbd7 finder: weblogic.utils.classloaders.CodeGenClassFinder@b44131 annotation: 
    ClassLoader=weblogic.utils.classloaders.GenericClassLoader@5b78cf finder: weblogic.utils.classloaders.CodeGenClassFinder@241f4e annotation: 
      ClassLoader=sun.misc.Launcher$AppClassLoader@47858e
        ClassLoader=sun.misc.Launcher$ExtClassLoader@19134f4
          ClassLoader=null
Thread.currentThread().getClass().getClassLoader():
==============================
___________________START_______________________

Class loader tree
 |
sun.misc.Launcher$ExtClassLoader@19134f4 {file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/dnsns.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/localedata.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunjce_provider.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunmscapi.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunpkcs11.jar:}
 |
sun.misc.Launcher$AppClassLoader@47858e {file:/C:/workshop/myclient.jar:file:/C:/bea1032/user_projects/domains/myAppwls10loc/%20C:/workspace/maven%20/oracle/jars/aqapi-9.0.2.jar%20:file:/C:/bea1032/patch_wls1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/patch_oepe1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/lib/tools.jar:file:/C:/bea1032/utils/config/10.3/config-launch.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic_sp.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic.jar:file:/C:/bea1032/modules/features/weblogic.server.modules_10.3.2.0.jar:file:/C:/bea1032/wlserver_10.3/server/lib/webservices.jar:file:/C:/bea1032/modules/org.apache.ant_1.7.0/lib/ant-all.jar:file:/C:/bea1032/modules/net.sf.antcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar:file:/C:/bea1032/wlserver_10.3/common/eval/pointbase/lib/pbclient57.jar:file:/C:/bea1032/wlserver_10.3/server/lib/xqrl.jar:}
 |
weblogic.utils.classloaders.GenericClassLoader@5b78cf finder: weblogic.utils.classloaders.CodeGenClassFinder@241f4e annotation:  
 |
weblogic.utils.classloaders.FilteringClassLoader@38bbd7 finder: weblogic.utils.classloaders.CodeGenClassFinder@b44131 annotation:  
 |
weblogic.utils.classloaders.GenericClassLoader@48268a finder: weblogic.utils.classloaders.CodeGenClassFinder@10e0edb annotation: myApp@ 

Context loader tree
 |
sun.misc.Launcher$ExtClassLoader@19134f4 {file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/dnsns.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/localedata.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunjce_provider.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunmscapi.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/jre/lib/ext/sunpkcs11.jar:}
 |
sun.misc.Launcher$AppClassLoader@47858e {file:/C:/workshop/myclient.jar:file:/C:/bea1032/user_projects/domains/myAppwls10loc/%20C:/workspace/maven%20/oracle/jars/aqapi-9.0.2.jar%20:file:/C:/bea1032/patch_wls1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/patch_oepe1032/profiles/default/sys_manifest_classpath/weblogic_patch.jar:file:/C:/bea1032/jdk160_14_R27.6.5-32/lib/tools.jar:file:/C:/bea1032/utils/config/10.3/config-launch.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic_sp.jar:file:/C:/bea1032/wlserver_10.3/server/lib/weblogic.jar:file:/C:/bea1032/modules/features/weblogic.server.modules_10.3.2.0.jar:file:/C:/bea1032/wlserver_10.3/server/lib/webservices.jar:file:/C:/bea1032/modules/org.apache.ant_1.7.0/lib/ant-all.jar:file:/C:/bea1032/modules/net.sf.antcontrib_1.0.0.0_1-0b2/lib/ant-contrib.jar:file:/C:/bea1032/wlserver_10.3/common/eval/pointbase/lib/pbclient57.jar:file:/C:/bea1032/wlserver_10.3/server/lib/xqrl.jar:}
 |
weblogic.utils.classloaders.GenericClassLoader@5b78cf finder: weblogic.utils.classloaders.CodeGenClassFinder@241f4e annotation:  
 |
weblogic.utils.classloaders.FilteringClassLoader@38bbd7 finder: weblogic.utils.classloaders.CodeGenClassFinder@b44131 annotation:  
 |
weblogic.utils.classloaders.GenericClassLoader@48268a finder: weblogic.utils.classloaders.CodeGenClassFinder@10e0edb annotation: myApp@ 
____________________END_______________________