rmi远程调用问题

windgoogle
09-04-13 4 320

写了个rmi应用,原程序跑得很正常,在对远程对象新添加了方法后,以补丁的方式覆盖了原程序,调用却出现异常
java.lang.NoSuchMethodError,看异常堆栈,确实从该远程对象的stub报出来的,确实在调用新添加的方法报出来的,加了调试后,用java反射机制,打印stub所有的方法,确实没有我新添加的方法,但奇怪的是,我把该应用原封不动打了个包,解压到同一机器另一个磁盘目录,却发现程序能正常跑了,能调用我新添加的方法,调试代码也能打印出stub类有我新添加的方法,问题是我没做任何修改啊,只是挪了个地方,请达人看看这会是什么问题??

banq
2009-04-14 15:02

Java用缓存很多,可能是缓存作怪。

windgoogle
2009-04-15 18:09

这个应用没有用缓存的地方啊,jvm自己 有缓存?缓存在哪儿呢?
[该贴被windgoogle于2009-04-15 18:15修改过]

xmuzyu
2009-04-15 20:13

应该与classloader的缓存有关系。你多做几次实验。

windgoogle
2009-04-16 11:26

问题是我重启了jvm(重启了应用),ClassLoader怎么还有缓存呢,为什么换了个磁盘目录就没问题了呢,怀疑跟rmi的机制有关,但不知道具体在哪儿?