本文原文連接: http://blog.csdn.net/bluishglc/article/details/7596118 ,轉載請注明出處!
spring在加載xsd文件時總是先試圖在本地查找xsd文件(spring的jar包中已經包含了所有版本的xsd文件),如果沒有找到,才會轉向去URL指定的路徑下載。
問題就是為什么spring在本地沒有找到需要的文件,不得不轉向網站下載。關於這個問題,其實也非常簡單。在很多spring的jar包里,在META-INF目錄下都有一個spring.schemas,這是一個property文件,其內容類似於下面


實際上,這個文件就是spring關於xsd文件在本地存放路徑的映射,spring就是通過這個文件在本地(也就是spring的jar里)查找xsd文件的。那么,查找不到的原因排除URL輸入有誤之外,可能就是聲明的xsd文件版本在本地不存在。一般來說,新版本的spring jar包會將過去所有版本(應該是自2.0以后)的xsd打包,並在spring.schemas文件中加入了對應項,出現問題的情況往往是聲明使用了一個高版本的xsd文件,如3.0,但依賴的spring的jar包卻是2.5之前的版本,由於2.5版本自然不可能包含3.0的xsd文件,此時就會導致spring去站點下載目標xsd文件,如遇斷網或是目標站點不可用,上述問題就發生了
