如何将Wiremock服务从Spring Boot应用程序部署到Azure应用服务?

时间:2019-04-23 12:51:15

标签: spring-boot azure-web-sites wiremock

我有一个spring-boot应用程序,其中在本地主机的端口80上启动了一个Wiremock服务器。在本地运行该应用程序时,可以访问Wiremock服务器(在http://localhost:80上)。但是,当将spring-boot应用程序以天蓝色部署到应用程序服务并启动时,已经使用了80端口,因此模拟无法启动。

想法是部署应用程序并启动模拟,因此当我访问应用程序服务的URL时,便能够访问模拟。

我尝试更改端口,并且从日志中可以看到模拟在其他端口上启动。但是,在访问应用程序服务的URL时,它不会重定向到模拟。 spring-boot不是Web应用程序,因此它不应使用默认端口80,而应使其不被占用。我是azure应用程序服务和spring-boot的新手,所以对您的建议都是很感激的

public static void main(String[] args) {
        SpringApplication.run(MocksApplication.class, args);      
    }

    @Bean
    public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
        return new PropertySourcesPlaceholderConfigurer();
    }   

    private void startMock() {

        File file = new File(classLoader.getResource("mock").getFile());
        String path = file.getAbsolutePath();
        mock= new WireMockServer((wireMockConfig().usingFilesUnderDirectory(path).port(80)));
        mock.start();
        logger.info("Starting mock on port " + mock.port() + " and bind addresss: " + mock.baseUrl());

    }
    @Override
    public void run(String... args) throws Exception {
        startMock();

    }

1 个答案:

答案 0 :(得分:0)

您可以通过访问Azure for Java开发人员页面开始使用: https://docs.microsoft.com/en-us/java/azure

以下示例将指导您在Azure App Service Linux上运行Spring-boot应用程序: https://docs.microsoft.com/en-us/java/azure/spring-framework/deploy-spring-boot-java-app-with-maven-plugin

可能在您的示例中,您只需要定义一个具有以下值的appsetting JAVA_OPTS即可强制您的应用从端口80启动:

  

-Dserver.port = 80

App Service Linux将尝试自动检测您的应用程序正在使用的端口,但是如果您以非常规端口启动,则还可以指定一个名为WEBSITES_PORT的应用程序设置,并为其提供预期端口号的值。

此外,请在App Service上查看文档以获取Java应用程序的配置指南 https://docs.microsoft.com/en-us/azure/app-service/containers/configure-language-java

此外,App Service Linux常见问题解答 https://docs.microsoft.com/en-us/azure/app-service/containers/app-service-linux-faq

相关问题