我有这种战争结构: Some.war
-WEB-INF
--lib
--- library.jar
---- some.xsd
---- some2.xsd
我想在library.jar中获取所有xsd文件,但是spring不想搜索它。
ContextLoaderListener.getCurrentWebApplicationContext()
.getResources("classpath*:**/*.xsd")
结果为空。我还尝试过:classpath:**/*.xsd
,**/*.xsd
。
如何使用“ant”模板(* / .xsd)获取jar中的所有xsd文件?
答案 0 :(得分:8)
答案在于Spring文档:
4.7.2.3 Other notes relating to wildcards
请注意“classpath *:”时 结合Ant风格的图案会 只能与至少一个人可靠地工作 模式之前的根目录 启动,除非是实际的目标文件 驻留在文件系统中。 这意味着 像“classpath *:*。xml”这样的模式 不会从根检索文件 jar文件,而只是来自 扩展目录的根目录。这个 源于对...的限制 JDK的
ClassLoader.getResources()
只返回文件系统的方法 传入的空字符串的位置 (表明潜在的根源 搜索)。