是否可能是ClaaaLoader(CL)的问题?(只是猜测)是否同一个.class被不同的CL 装入了?类似的问题在Servlet讨论组上讨论过:当时的情况是:放进hashTable 的FileHolder Class Object,和取出时用来cast那个FileHolder Class Object, 是被不同的CL装入的,即使在同一个JVM内,被不同的CL装入的Class被认为是 不同的Class(即使他们是来自同一个”静态.class文件")...好象是这样 建议试一下建议用getClass().getClassLoader().hashCode()看看,是不是一样?
hsession.setAttribute("AddAttach",Files);
这个不是问题
是FileHolder对象,我试过很多次了。找不到原因,这个问题已经折腾我好几天了!:(
装入了?类似的问题在Servlet讨论组上讨论过:当时的情况是:放进hashTable
的FileHolder Class Object,和取出时用来cast那个FileHolder Class Object,
是被不同的CL装入的,即使在同一个JVM内,被不同的CL装入的Class被认为是
不同的Class(即使他们是来自同一个”静态.class文件")...好象是这样
建议试一下建议用getClass().getClassLoader().hashCode()看看,是不是一样?
System.out.println("2 "+Files.get(str).getClass() );
System.out.println("3 "+Files.get(str).hashCode() );
System.out.println("4 "+Files.get(str).getClass().hashCode() );
System.out.println("5 "+Files.get(str).getClass().getClassLoader() );
System.out.println("6 "+Files.get(str).getClass().getClassLoader().hashCode());
这6项完全一样
1 FileHolder@3f3045
2 class FileHolder
3 4141125
4 4001236
5 org.apache.tomcat.loader.AdaptiveClassLoader@5a3d6b
6 5913963
我真的没辙了
文件都在同一目录下有必要么?
在两个Servlet页面里
: zych72(闹闹) :
当然是一个类
下面这些数据在两个页面里的输出是一样的,但是我在其中的一个页面当中得到Hashtable之后对象强制转化会抛出异常
System.out.println("1 "+Files.get(str));
System.out.println("2 "+Files.get(str).getClass() );
System.out.println("3 "+Files.get(str).hashCode() );
System.out.println("4 "+Files.get(str).getClass().hashCode() );
System.out.println("5 "+Files.get(str).getClass().getClassLoader() );
System.out.println("6 "+Files.get(str).getClass().getClassLoader().hashCode());
这6项完全一样
1 FileHolder@3f3045
2 class FileHolder
3 4141125
4 4001236
5 org.apache.tomcat.loader.AdaptiveClassLoader@5a3d6b
6 5913963
参与的都有分