类加载
youling_lh
这个作者很懒,什么都没留下…
展开
-
HSF源码阅读笔记
HSF(highspeed service framework ) 是淘宝内部使用的一个rpc(remote procedure call) 框架,最近在看Apache Mina的应用层协议的编解码器时,想到了看HSF的源码。1、HSF单元测试环境的启动: HSF组开发同事提供了一个HSFEasyStarter,支持HSF环境的快速启动。它的原理是: 从淘宝内网下载一个taobao转载 2013-07-30 22:04:06 · 2677 阅读 · 0 评论 -
tomcat热部署的实现原理
一. 概述名词解释:所谓热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。对于Java应用程序来说,热部署就是在运行时更新Java类文件。在基于Java的应用服务器实现热部署的过程中,类装入器扮演着重要的角色。大多数基于Java的应用服务器,包括EJB服务器和Servlet容器,都支持热部署。类装入器不能重新装入一个已经装入的类,但只要使用一个转载 2013-08-03 13:33:54 · 998 阅读 · 0 评论 -
ClassLoader的应用
在JVM规范抽象架构中我们提到ClassLoader负责加载Java字节码交给JVM,为了给下面应用更进一步提供基础,我还是快速的介绍一下ClassLoader的工作机制。ClassLoader常规工作机制如下:ClassLoader常规工作机制对上图进一步解释:□ 每个java.lang.ClassLoade转载 2013-08-03 13:53:56 · 650 阅读 · 0 评论 -
java.lang.Instrument 动态修改替换类代码
java.lang.Instrument包是在JDK5引入的,程序员通过修改方法的字节码实现动态修改类代码。这通常是在类的main方法调用之前进行预处理的操作,通过java指定该类的代理类来实现。 1. 代理 (agent) 是在你的main方法前的一个拦截器 (interceptor),也就是在main方法执行之前,执行agent的代码。agent的代码与你的ma转载 2013-08-04 01:10:08 · 1474 阅读 · 0 评论 -
理解Tomcat的WebappClassLoader(web应用类加载器)
我目前的系统可能需要自己实现类加载器,想要参考Tomcat的实现。关于Tomcat的类加载机制,网上文章很多,当然大多都是互相copy,有价值的信息并不多,不得已我开始看Tomcat代码,略有所得,记录起来。主要针对WebappClassLoader。 负责Web应用的类加载的是org.apache.catalina.loader.WebappClassLoader,它几个比较重要转载 2013-08-04 00:11:55 · 2285 阅读 · 0 评论 -
动态加载class文件
想要在jvm启动后,动态的加载class类文件,我们首先需要了解Instrumentation、Attach、Agent、VirtualMachine、ClassFileTransformer这几个类的用法和他们之间的关系。 Java的com.sun.tools.attach包中的VirtualMachine类,该类允许我们通过给attach方法传入一个jvm的pid(进程id),远程连接转载 2013-08-04 01:13:16 · 2107 阅读 · 0 评论 -
某应用出现启动后集群中部分node成功,部分node失败
解决过程:1、失败的node抛出的是NoClassDefFoundError,这些node在环境上和应用包上是完全一致的,因此猜想是classloader装载class时出现了什么问题;2、在启动参数上增加了-XX:+TraceClassLoading,想看看成功的node和失败的node是不是从第一个地方加载的相应的类,悲催的是成功的node加上了这参数后启动超慢,于是只好放弃;3、转载 2013-11-18 20:39:23 · 1050 阅读 · 0 评论 -
常见的Java问题排查方法
以下是Java应用在运行时常见的一些问题,总结了运行时黑盒方式的一些排查方法,也希望看到的同学能给予补充,无论是补充碰到的问题,还是补充解决方法。类装载的相关问题写过Java代码的同学估计都碰到过ClassNotFoundException/NoClassDefFoundError/NoSuchMethodException(还有一个常见的ClassCastException就不在这里转载 2013-11-18 21:51:01 · 1881 阅读 · 0 评论