Java 如何指定WireMock映射和可执行SpringBootJAR中存在的文件的路径?
我已经使用“SpringCloudContract WireMock”依赖项将WireMock构建为spring启动应用程序。 我将映射和_文件保存在src/test/resources文件夹中 当我从IDE运行应用程序时,它工作得非常好。但是当我直接运行Jar时,它会给出一个fileNotFoundExceptionJava 如何指定WireMock映射和可执行SpringBootJAR中存在的文件的路径?,java,spring,spring-boot,wiremock,wiremock-standalone,Java,Spring,Spring Boot,Wiremock,Wiremock Standalone,我已经使用“SpringCloudContract WireMock”依赖项将WireMock构建为spring启动应用程序。 我将映射和_文件保存在src/test/resources文件夹中 当我从IDE运行应用程序时,它工作得非常好。但是当我直接运行Jar时,它会给出一个fileNotFoundException <pre>java.lang.RuntimeException: java.io.FileNotFoundException: C:\Users\{user}\Dow
<pre>java.lang.RuntimeException: java.io.FileNotFoundException: C:\Users\{user}\Downloads\src\test\resources\__files\....
主要类别:
public Options wireMockOptions() throws IOException {
final WireMockConfiguration options = WireMockSpring.options();
options.usingFilesUnderDirectory("classpath*:");
options.port(9990);
return options;
}
如何指定_文件和映射的路径,以便可以从任何位置独立运行?您可以使用以下选项之一更改WireMock查找
/mappings
和/_文件的路径:
我承认我没有将WireMock与Spring一起使用,因此这里的情况可能会有点不同。您可以使用以下方法之一更改WireMock查找/mappings
和/\uu文件的路径
我承认我没有将WireMock与Spring一起使用,因此这里的情况可能会有所不同。如果您只是正常运行应用程序,那么将找不到测试资源,因为它们通常不包含在生成的jar文件中。测试或实际运行应用程序需要Wiremock吗?如果是后者,则需要将文件移动到正常的资源路径“src/main/resources”中。如果您只是正常运行应用程序,将找不到测试资源,因为它们通常不包含在生成的jar文件中。测试或实际运行应用程序需要Wiremock吗?如果是后者,则需要将文件移动到正常的资源路径“src/main/resources”中。谢谢大家的建议
我能够通过在我的主课中添加以下内容来实现它
SpringClasspathResourceFileSource是实现FileSource接口的普通类。
“stub”是我在src/main/resources中创建的文件夹。fileSource对象已从应用程序的类路径返回文件夹的uri。感谢大家的建议
我能够通过在我的主课中添加以下内容来实现它
SpringClasspathResourceFileSource是实现FileSource接口的普通类。
“stub”是我在src/main/resources中创建的文件夹。fileSource对象已从应用程序的类路径返回文件夹的uri。您是否注意到错误中您的应用程序正在访问测试文件夹\src\test\resources`这可能是问题的一部分,通常在正常运行期间
\src\main\resources`应该被访问。显然,src/test/resources是WireMockConfiguration类用于查找映射的默认位置。我必须通过设置文件源来覆盖默认值。您是否注意到错误中您的应用程序正在访问测试文件夹\src\test\resources`这可能是问题的一部分,通常在正常运行期间
\src\main\resources`应该被访问。显然,src/test/resources是WireMockConfiguration类用于查找映射的默认位置。我必须通过设置文件源来覆盖默认值。
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;
}
}
public Options wireMockOptions() throws IOException {
final WireMockConfiguration options = WireMockSpring.options();
options.usingFilesUnderDirectory("classpath*:");
options.port(9990);
return options;
}
FileSource fileSource = new SpringClasspathResourceFileSource("stub");
options.fileSource(fileSource);