我用断点试了一试,发现xxx.xml的路径是对的,我发现每次解析是classloader的value都是WebappClassLoader(id=97),我觉得是这样的一个解释:第一次运行classLoader.getResourceAsStream(fileName)时,classloader把xxx.xml文件读入到jvm中,
当我修改了文件xxx.xml后,在一次调用classLoader.getResourceAsStream(fileName)时,由于这时的classLoader和第一次运行的classloader是同一个classloader(猜测),由于是同一个classloader,加载的文件名没变,所以系统没有再从文件中读,而是直接从jvm中读出,所以xml文件中的修改就体现不出来了。
猜测:我想这跟使用spring, Struts和hibernate的系统中,修改相关的配置文件后必须重新启动系统才能奏效是同一个原理。
不知道我的猜测推理对不对,请各位英雄批评指正。