`

ClassLoader 和 反射加载的区别

 
阅读更多
在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类加载机制和原理详解

    本文将深入探讨ClassLoader的工作原理和类加载机制,帮助开发者理解这个至关重要的概念。 1. 类加载机制概述 Java的类加载机制遵循“双亲委派模型”(Delegation Model)。当一个类被加载时,它首先会尝试由当前...

    Java ClassLoader定制实例

    在实际应用中,我们可以通过反射API来使用自定义ClassLoader加载的类。例如,我们可以创建一个`Class`对象,然后调用`newInstance()`方法来创建该类的实例。 总结来说,Java ClassLoader的定制是一项强大的技术,它...

    ClassLoader 案例

    默认情况下,系统使用Bootstrap ClassLoader、Extension ClassLoader和App ClassLoader来加载不同路径下的类。自定义ClassLoader则允许我们插入这个流程,按照自己的规则去查找和加载类。 在自定义ClassLoader时,...

    ClassLoader

    #### 与反射的区别 虽然该实例看起来与反射机制类似,但二者在实现细节上有所不同: - **反射机制**通常涉及使用`Class.forName()`方法或`Constructor.newInstance()`方法来创建对象。 - **自定义类加载器**则是通过...

    深入理解ClassLoader工作机制.docx

    1. **加载**:加载是ClassLoader工作的起点,它从文件系统或网络中找到类的二进制数据,然后创建一个对应的Class对象。这个过程可以通过自定义ClassLoader来实现,比如从数据库中加载类。 2. **验证**:验证是确保...

    反射机制和类加载机制学习总结

    反射提供了强大的运行时元数据操作能力,而类加载机制则确保了类的安全加载和动态管理。深入理解这两个机制对于Java开发者来说至关重要,尤其对于那些从事框架开发和系统级编程的开发者而言更是如此。

    ClassLoader总结

    Java中的ClassLoader分为 Bootstrap ClassLoader(启动类加载器)、Extension ClassLoader(扩展类加载器)和AppClass ClassLoader(应用程序类加载器)。Bootstrap加载JDK核心类库,Extension加载JRE扩展目录的类...

    类加载机制及反射

    类加载器主要有Bootstrap ClassLoader(引导类加载器)、Extension ClassLoader(扩展类加载器)和AppClassLoader(应用程序类加载器)三类,它们按照双亲委托模型工作,即子类加载器先尝试加载,失败后再由父类加载...

    Java实现热加载完整代码;Java动态加载class;Java覆盖已加载的class;Java自定义classloader

    1. 定义好接口和实现类 2. 让代理类通过反射的方式调用实现类,对外暴露的是代理类。 3. 自定义URLClassLoader。检查实现类.class文件的修改时间,如果是更新的.class文件则重新加载该实现类的class。 4. 调用方法前...

    Java类加载机制与反射-PPT

    Java的类加载机制:加载,连接,初始化。JAVA类加载器: Bootstrap ClassLoader : 根类加载器, Extension ClassLoader: 扩展类加载器, System ClassLoader : 系统类加载器, Java反射

    java中classLoader的使用

    Java中的类加载器(ClassLoader)是Java虚拟机(JVM)的一个重要组成部分,它负责将类的.class文件从文件系统或者网络中加载到内存中,并转换为对应的Class对象。类加载器的工作流程主要包括加载、验证、准备、解析...

    33_反射(类加载、反射)_讲义

    类加载器通常包括Bootstrap ClassLoader(引导类加载器)、Extension ClassLoader(扩展类加载器)和App ClassLoader(应用程序类加载器),以及用户自定义的类加载器。 2. **验证**:验证阶段确保.class文件的数据...

    【IT十八掌徐培成】Java基础第25天-04.classLoader-系统资源-不可见类访问.zip

    首先,ClassLoader分为不同的层次,包括Bootstrap ClassLoader(引导类加载器)、Extension ClassLoader(扩展类加载器)和App ClassLoader(应用程序类加载器)。Bootstrap ClassLoader主要负责加载JDK核心库(rt....

    day17-类加载器和反射.zip

    类加载器和反射是Java编程中的重要概念,它们在软件开发中扮演着不可或缺的角色,特别是在构建可扩展和灵活的应用程序时。今天我们将深入探讨这两个主题,了解它们的工作原理以及如何在实际开发中应用。 首先,让...

    类加载器文件

    1. **初始化阶段**: 当Java程序启动时,JVM启动并运行`Bootstrap ClassLoader`,加载Java的核心API,包括`ExtClassLoader`和`AppClassLoader`。 2. **扩展API加载**: `Bootstrap ClassLoader`加载完成后,`...

    Android 通过反射启动未安装的APK中的Activity

    反射的运用使得我们可以在运行时动态地加载和调用类的方法。以下是一般步骤: 1. **读取APK**:首先,我们需要获取到未安装APK的二进制数据。这可以通过FileInputStream或AssetManager完成,将APK文件视为一个普通...

    java注解_反射_字节码_类加载机制.zip

    Java注解、反射、字节码和类加载机制是Java编程中的核心概念,它们在实际开发中扮演着重要角色。让我们深入探讨这些知识点。 **Java注解(Annotation)**: Java注解是一种元数据,它提供了在编译时或运行时处理代码的...

    JAVA反射机制与类的加载

    反射机制主要涉及类加载器(ClassLoader)和`Class`类。在Java程序运行过程中,类加载器负责将类加载到JVM的内存中,而反射则提供了在运行时检查和操作这些类的能力。 类加载机制是Java虚拟机(JVM)的核心组成部分...

    Java反射机制——类的加载方法,创建对象,获取方法以及结构

    在Java中,反射机制是通过`java.lang.reflect`包提供的API实现的,这些API使得开发者能够访问类的私有属性、方法以及构造器,甚至能够在运行时创建和调用对象。 1. **什么是反射?** 在Java中,反射机制是在程序...

Global site tag (gtag.js) - Google Analytics