我使用“spring-cloud-contract-wiremock”依赖项将 WireMock 构建为 spring boot 应用程序。 我将映射和 _files 保存在 src/test/resources 文件夹中。
当我从 IDE 运行应用程序时,它运行良好。但是当我直接运行 Jar 时,它给出了 fileNotFoundException。
<pre>java.lang.RuntimeException: java.io.FileNotFoundException: C:\Users\{user}\Downloads\src\test\resources\__files\....
我的 application.yml 文件内容:
spring:
main:
web-application-type: none
application:
name: wiremock-service
wiremock:
server:
files: classpath:/__files
stubs: classpath:/mappings
主类:
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public Options wireMockOptions() throws IOException {
final WireMockConfiguration options = WireMockSpring.options();
//options.withRootDirectory("classpath*:");
options.port(9990);
return options;
}
}
如何指定 _files 和映射的路径,以便我可以从任何位置独立运行?
最佳答案
感谢大家的建议。
我能够通过在我的主类中添加以下内容来使其工作
FileSource fileSource = new SpringClasspathResourceFileSource("stub");
options.fileSource(fileSource);
SpringClasspathResourceFileSource 是实现FileSource 接口(interface)的普通类。 “ stub ”是我在 src/main/resources 中创建的文件夹。 fileSource 对象已从应用程序的类路径返回文件夹的 uri。
关于java - 如何指定可执行 Spring Boot Jar 中存在的 WireMock 映射和文件的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63069199/