2

「spring-cloud-contract-wiremock」依存関係を使用して、Spring Boot アプリケーションとして WireMock を構築しました。マッピングと _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 とマッピングのパスを指定して、任意の場所から独立して実行できるようにするにはどうすればよいですか?

4

4 に答える 4

3

皆さんの提案に感謝します。

メインクラスに以下を追加することで機能させることができました

FileSource fileSource = new SpringClasspathResourceFileSource("stub");
options.fileSource(fileSource);

SpringClasspathResourceFileSource は、FileSource インターフェースを実装する通常のクラスです。「stub」は、src/main/resources 内に作成したフォルダーです。fileSource オブジェクトは、アプリケーションのクラスパスからフォルダーの uri を返しました。

于 2020-07-25T09:21:11.713 に答える