自定义ClassLoader在Tomcat中的问题
公司要求做加密,于是上网搜啊,都说加密重要的.class,自定义ClassLoader加载加密的class,其实我感觉也没有用,defineClass时还是要解密。但是其间遇到一个问题一直不知道什么原因:
Jdk1.6 Tomcat5.5
自定义的ClassLoader类:MyClassLoader
待解密的类:LicenseUtils
我用MyClassLoader加载LicenseUtils时的代码:
public void init() { //自定义的类 License com.test.encrypt.License lic = new com.test.encrypt.License(); //如果是第三方的jar包也报错 System.out.println("init method");}
我思忖,Java Application 和 Web Application有什么区别呢?
Jdk有三个ClassLoader,利用委派方式加载类,Tomcat定制了自己一系列的ClassLoader来加载类,我自己写
的MyClassLoader继承自Jdk的ClassLoader,Tomcat的WebAppClassLoader继承自URLClassLoader,URLClassLoader又继承自ClassLoader。
查了Apache的Mailing Lists发现有人说Tomcat只能用继承自WebAppClassLoader的ClassLoader
有人遇到过吗?或者看出有什么问题的 1 楼 wupuyuan 2011-09-27 没有尝试过自己的ClassLoad。不过我用过jks,如果不是要加密class,可以用它看看。