Some Background Knowledge About the Java Class Loaders
When the JVM is started, three class loaders are used:
- Bootstrap class loader
- Extensions class loader
- 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.
- 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
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
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/libThe 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_______________________