【问题标题】:Azure App Service - Spring Boot application stuck on startupAzure App Service - Spring Boot 应用程序在启动时卡住
【发布时间】:2017-09-23 16:45:45
【问题描述】:

我将 Spring Boot Web 应用程序托管为 Azure 应用程序服务,但是其中一个似乎在启动时陷入了循环。该应用程序无法访问,并且看起来它每半分钟重新启动一次。日志中没有错误,重新启动应用服务也没有帮助。

有人知道为什么会发生这种情况或我该如何解决吗?
提前致谢。

【问题讨论】:

    标签: azure spring-boot azure-web-app-service azure-app-service-envrmnt


    【解决方案1】:

    有时使用默认启动命令启动 jar 需要更多时间。可能是因为它使用-cp 命令启动jar,所以它会扫描文件系统中的配置文件。

    java -cp app.jar org.springframework.boot.loader.JarLauncher
    

    我通过在 AppService->Configuration->General Settings->Startup 命令中提供启动命令解决了这个问题

    java -jar <path_of_jar> 
    

    您也可以查看容器日志,请参阅下面的链接。 [https://docs.microsoft.com/en-us/azure/app-service/troubleshoot-diagnostic-logs]

    如果你正在登录一个文件,那么你可以通过SSH[Azure门户->AppService->左侧有一个SSH选项]到容器和tail直接登录日志,但有时很难得到使用 ssh 进入容器,因为它没有正常启动。

    【讨论】:

      【解决方案2】:

      我终于设法解决了这个问题。默认情况下,应用服务配置设置为使用 Jetty 作为 Web 容器而不是 Tomcat。可能该服务试图验证 Jetty 是否已启动并正在运行,并且由于它不是服务不断重新启动。 一旦我将配置设置为 Tomcat,问题就解决了。

      【讨论】:

        【解决方案3】:

        您的application.properties 应该有:

        logging.level=DEBUG
        logging.level.org.springframework=DEBUG
        logging.file=/home/LogFiles/boot.log
        

        boot.log 应该会给你更多关于接下来要寻找什么的信息。

        【讨论】:

        • 试过 /home/LogFiles/boot.log 但发现将以下内容添加到 web.config 文件中可以代替 -Dlogging.file="%HOME%\LogFiles\boot.log"跨度>
        猜你喜欢
        • 2018-10-03
        • 1970-01-01
        • 1970-01-01
        • 2018-01-13
        • 2017-12-21
        • 2018-12-16
        • 2017-06-20
        • 1970-01-01
        • 2017-03-05
        相关资源
        最近更新 更多