Spring:搜索内jar中的资源

发布于 2024-11-09 06:11:05 字数 426 浏览 0 评论 0原文

我有一个这样的战争结构: Some.war

-WEB-INF
--lib
---library.jar
----一些.xsd
----some2.xsd

我想获取library.jar中的所有xsd文件,但spring不想搜索它。

ContextLoaderListener.getCurrentWebApplicationContext()
                     .getResources("classpath*:**/*.xsd")

结果为空。我还尝试过:classpath:**/*.xsd**/*.xsd

我如何使用“ant”模板(*/.xsd)获取jar中的所有xsd文件?

I have a this war structure:
Some.war

-WEB-INF
--lib
---library.jar
----some.xsd
----some2.xsd

And i want to get all xsd files in library.jar, but spring don't want to search it.

ContextLoaderListener.getCurrentWebApplicationContext()
                     .getResources("classpath*:**/*.xsd")

result is empty. I also tried: classpath:**/*.xsd, **/*.xsd.

How i can get all xsd files in jar using "ant" template (*/.xsd)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情深缘浅 2024-11-16 06:11:05

答案就在 Spring 文档中:

4.7.2.3 与通配符相关的其他说明

请注意“classpath*:”时
结合蚂蚁风格的图案
只能与至少一个可靠地工作
模式之前的根目录
启动,除非实际的目标文件
驻留在文件系统中。 这意味着
像“classpath*:*.xml”这样的模式
不会从根目录检索文件
jar 文件,但仅来自
扩展目录的根目录。

源于一个限制
JDK的ClassLoader.getResources()
只返回文件系统的方法
传入空字符串的位置
(表示潜在根
搜索)。

The answer lies in the Spring docs:

4.7.2.3 Other notes relating to wildcards

Please note that "classpath*:" when
combined with Ant-style patterns will
only work reliably with at least one
root directory before the pattern
starts, unless the actual target files
reside in the file system. This means
that a pattern like "classpath*:*.xml"
will not retrieve files from the root
of jar files but rather only from the
root of expanded directories.
This
originates from a limitation in the
JDK's ClassLoader.getResources()
method which only returns file system
locations for a passed-in empty string
(indicating potential roots to
search).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文