【发布时间】:2021-07-08 23:48:00
【问题描述】:
我正在使用 Spring 的 PathMatchingResourcePatternResolver 来尝试获取当前位于我的 src/main/resources 目录中的 .jmx 文件(JMeter 测试)列表。这将作为 WAR 文件托管在 AWS 上。
当我在本地工作时,我有这个代码块给我资源/目录中的 .jmx 文件列表,但我知道不能使用我的本地文件路径:
PathMatchingResourcePatternResolver resolver =
new PathMatchingResourcePatternResolver(MyClass.class.getClassLoader());
Resource[] resources = resolver.getResources("file:/C:/Users/user.name/repos/my-repo/src/main/resources/dailyTests/*.jmx")
我一直在尝试使用类路径*:这实际上几乎可以工作:
Resource[] resources = resolver.getResources("classpath*:*.jmx");
这将获取我所有的 .jmx 文件,其 URL 如下所示:
file:/C:/Users/user.name/repos/my-repo/target/classes/my_jmeter_test.jmx
但我还需要能够处理资源目录的子目录。当我尝试更具体时,我相信我输入了不正确的模式。据我了解,在使用 classpath* 时,您仍然需要在 classpath*: 之后使用根目录,但我不确定应该是什么。
到目前为止我已经尝试过
Resource[] resources = resolver.getResources("classpath*:Users/*.jmx");
Resource[] resources = resolver.getResources("classpath*:classes/*.jmx");
Resource[] resources = resolver.getResources("classpath*:WEB-INF/*.jmx");
Resource[] resources = resolver.getResources("classpath*:com/*.jmx");
还有许多其他的猜测,所有这些都返回了 0 个资源。似乎当我更具体一步时,我得到了 0 个资源。
我想我可能误解了我应该如何浏览 WAR 文件,或者可能只是误解了 classpath* 得到的内容。我完全不在这儿了吗?
【问题讨论】:
标签: java spring spring-boot war