Unable to locate Spring NamespaceHandler for XML schema namespace[http://www.springframework.org/schema/security]


使用maven構建spring security的一個demo時出現了這個問題,網上找了很長時間,很多答案都不適合自己。

1.一開始根據提示以為是xsd和jar包的版本沖突問題,參考了這篇文章 http://www.baeldung.com/unable-to-locate-spring-namespacehandler-for-xml-schema-namespace,

修改xsd和jar包版本一致,但是還是報同樣的問題。

2.后來找到一些答案可能是META-INF文件中spring.schemas,spring.handlers的配置信息有問題,spring.schemas配置了xml文件中的命名空間引用的約束文件所在的路徑,

當這個配置信息不存在或者錯誤時,就找不到約束文件了。參考了http://www.colabug.com/thread-1060640-1-1.html

3.繼續查找spring.schemas的配置信息,發現spring bean 和spring security都帶有這種spring.schemas配置,所以覺得可能是互相覆蓋了的原因。

參考了http://www.bubuko.com/infodetail-924825.html

4.最后參考http://cloverprince.iteye.com/blog/1011382 文章,發現spring-security的這個spring.schemas並不在core和web里,而是在另外一個spring-security-config.jar

問題終於找到了,我沒有配置spring-security-config.jar,於是在maven中添加了這個jar包,重啟,解決問題。

spring-security的reference, 2.1節,提到: 

“To start using the security namespace in your application context, you first need to make sure that the spring-security-config jar is on your classpath. ... ”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM