在websphere中,类加载顺序是
java核心库
sharelib库(自己插入的)
websphere库
app库
在运行时候,在调用sharelib库中的类的时候, sharelib库中的类可以通过反射调用 app库中的类和方法。
在weblogic中,类加载顺序是
java核心库
weblogic库
app库
这里我遇见一个问题就是在app库中的类调用SerializationUtils.clone会报某个app类找不到的错误。SerializationUtils在weblogic库中,即weblogic库中的类查找app库中的类。
是因为
In WebLogic 10, commons-lang jar is loaded by a system class loader, and its loading order is always prior to webapp's classloader.
(FYI, in WebLogic 10, commons-lang jar is located in the system library directory: bea/modules/com.bea.core.apache.commons.lang_2.1.0.jar.)
So, SerializationUtils.deserialize() cannot find classes because SerializationUtils class is loaded by a parent classloader, not by the webapp classloader.
所以在调用serialization/deserialization时候,
weblogic库的classloader是无法找到app库中的类的。
分享到:
相关推荐
本文将深入探讨ClassLoader的工作原理和类加载机制,帮助开发者理解这个至关重要的概念。 1. 类加载机制概述 Java的类加载机制遵循“双亲委派模型”(Delegation Model)。当一个类被加载时,它首先会尝试由当前...
在实际应用中,我们可以通过反射API来使用自定义ClassLoader加载的类。例如,我们可以创建一个`Class`对象,然后调用`newInstance()`方法来创建该类的实例。 总结来说,Java ClassLoader的定制是一项强大的技术,它...
默认情况下,系统使用Bootstrap ClassLoader、Extension ClassLoader和App ClassLoader来加载不同路径下的类。自定义ClassLoader则允许我们插入这个流程,按照自己的规则去查找和加载类。 在自定义ClassLoader时,...
#### 与反射的区别 虽然该实例看起来与反射机制类似,但二者在实现细节上有所不同: - **反射机制**通常涉及使用`Class.forName()`方法或`Constructor.newInstance()`方法来创建对象。 - **自定义类加载器**则是通过...
1. **加载**:加载是ClassLoader工作的起点,它从文件系统或网络中找到类的二进制数据,然后创建一个对应的Class对象。这个过程可以通过自定义ClassLoader来实现,比如从数据库中加载类。 2. **验证**:验证是确保...
反射提供了强大的运行时元数据操作能力,而类加载机制则确保了类的安全加载和动态管理。深入理解这两个机制对于Java开发者来说至关重要,尤其对于那些从事框架开发和系统级编程的开发者而言更是如此。
Java中的ClassLoader分为 Bootstrap ClassLoader(启动类加载器)、Extension ClassLoader(扩展类加载器)和AppClass ClassLoader(应用程序类加载器)。Bootstrap加载JDK核心类库,Extension加载JRE扩展目录的类...
类加载器主要有Bootstrap ClassLoader(引导类加载器)、Extension ClassLoader(扩展类加载器)和AppClassLoader(应用程序类加载器)三类,它们按照双亲委托模型工作,即子类加载器先尝试加载,失败后再由父类加载...
1. 定义好接口和实现类 2. 让代理类通过反射的方式调用实现类,对外暴露的是代理类。 3. 自定义URLClassLoader。检查实现类.class文件的修改时间,如果是更新的.class文件则重新加载该实现类的class。 4. 调用方法前...
Java的类加载机制:加载,连接,初始化。JAVA类加载器: Bootstrap ClassLoader : 根类加载器, Extension ClassLoader: 扩展类加载器, System ClassLoader : 系统类加载器, Java反射
Java中的类加载器(ClassLoader)是Java虚拟机(JVM)的一个重要组成部分,它负责将类的.class文件从文件系统或者网络中加载到内存中,并转换为对应的Class对象。类加载器的工作流程主要包括加载、验证、准备、解析...
类加载器通常包括Bootstrap ClassLoader(引导类加载器)、Extension ClassLoader(扩展类加载器)和App ClassLoader(应用程序类加载器),以及用户自定义的类加载器。 2. **验证**:验证阶段确保.class文件的数据...
首先,ClassLoader分为不同的层次,包括Bootstrap ClassLoader(引导类加载器)、Extension ClassLoader(扩展类加载器)和App ClassLoader(应用程序类加载器)。Bootstrap ClassLoader主要负责加载JDK核心库(rt....
类加载器和反射是Java编程中的重要概念,它们在软件开发中扮演着不可或缺的角色,特别是在构建可扩展和灵活的应用程序时。今天我们将深入探讨这两个主题,了解它们的工作原理以及如何在实际开发中应用。 首先,让...
1. **初始化阶段**: 当Java程序启动时,JVM启动并运行`Bootstrap ClassLoader`,加载Java的核心API,包括`ExtClassLoader`和`AppClassLoader`。 2. **扩展API加载**: `Bootstrap ClassLoader`加载完成后,`...
反射的运用使得我们可以在运行时动态地加载和调用类的方法。以下是一般步骤: 1. **读取APK**:首先,我们需要获取到未安装APK的二进制数据。这可以通过FileInputStream或AssetManager完成,将APK文件视为一个普通...
Java注解、反射、字节码和类加载机制是Java编程中的核心概念,它们在实际开发中扮演着重要角色。让我们深入探讨这些知识点。 **Java注解(Annotation)**: Java注解是一种元数据,它提供了在编译时或运行时处理代码的...
反射机制主要涉及类加载器(ClassLoader)和`Class`类。在Java程序运行过程中,类加载器负责将类加载到JVM的内存中,而反射则提供了在运行时检查和操作这些类的能力。 类加载机制是Java虚拟机(JVM)的核心组成部分...
在Java中,反射机制是通过`java.lang.reflect`包提供的API实现的,这些API使得开发者能够访问类的私有属性、方法以及构造器,甚至能够在运行时创建和调用对象。 1. **什么是反射?** 在Java中,反射机制是在程序...