首页 > 解决方案 > 将 WireMock Server 作为 SpringBoot 应用程序运行

问题描述

我是 WireMock 框架的新手。我的要求是将 WireMock 作为可以在 Spring Boot 应用程序上接受存根的服务器运行。我尝试使用 Spring Cloud Contract 依赖项,但这只能帮助我运行测试。在这方面,任何方向或样本都会有很大帮助。

标签: javaspring-bootwiremock

解决方案


关键是在 application.yml 文件中设置 spring web-application-type: none 。这样当 Spring Boot 应用程序从 IDE 启动时,它会在 http 端口 8080 上运行 Wiremock,该端口在 jetty 服务器上内部运行

下面是 appplication.yml 文件

    春天:
          主要的:
            网络应用程序类型:无
          应用:
            名称:应用
    线模:
          服务器:
            文件:类路径:/__files
            存根:类路径:/映射

下面是 SpringBoot 应用程序类

 @SpringBootApplication
    @Slf4j
    @AutoConfigureWireMock()
    public class Application extends SpringBootServletInitializer {


        public static void main(String[] args) {
            log.info("Starting  Application");
            SpringApplication.run(Application.class, args);
        }



        @Bean
        public Options wireMockOptions() throws IOException {

            final WireMockConfiguration options = WireMockSpring.options();
            options.port(8080);

            return options;
        }



    }

请确保您有这些依赖项

<dependency>
       <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-contract-wiremock</artifactId>
</dependency>
 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-contract-wiremock</artifactId>
</dependency>

推荐阅读