Azure应用服务返回404为Spring启动基于Java 8的战争



我试图在Azure应用程序服务上部署基于Springboot的war文件,我可以看到服务器在日志中启动,但当我试图访问网站时返回404。

下面是我的日志:-

应用服务日志中的启动命令:-

'2022-05-09T22:17:09.766Z INFO  - Starting container for site
2022-05-09T22:17:09.766Z INFO  - docker run -d -p 80:80 --name testing3_0_315c5bf8 -e WEBSITE_SITE_NAME=testing3 -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=testing3.azurewebsites.net -e WEBSITE_INSTANCE_ID=192ae7e12efabd86b8f1992c5d0955e31956c2538c35216038ae1c4c72bce58c -e HTTP_LOGGING_ENABLED=1 -e JAVA_TOOL_OPTIONS=-javaagent:/agents/java/applicationinsights-agent-codeless.jar mcr.microsoft.com/azure-app-service/java:8-jre8_191030025800'

成功启动日志:-

'2022-05-09 22:19:49.960  INFO 123 --- [main] com.case.client                    : Started testing in 111.231 seconds (JVM running for 138.403)'

我试着在Stackoverflow上寻找它,人们建议下面的事情,我尝试了所有的事情,但没有工作:

  1. 将Always On标志更改为Yes.

  2. 在配置中添加端口映射,但没有帮助。

  3. 重新启动应用程序几次。

看起来我的请求根本没有到达我的应用程序。

有人知道我在这里做错了什么吗?

我在Spring Boot 3中遇到了同样的问题。这篇堆栈溢出的文章是8个月前的,因为它可能是不同的问题。

我联系了微软支持,因为我的应用程序在本地运行没有任何问题。只有在与Azure Web应用服务结合使用时,应用程序才会始终返回HTTP 404。我使用IntelliJ Azure插件、maven插件和Azure管道来部署应用程序。无论哪种方式,服务器总是返回HTTP 404。

我们可以在Azure Web服务日志中看到传入的http请求,但它没有交付到已部署的应用程序。但是Spring Boot应用程序已经启动并运行了。我降级到Spring Boot 2.7.7,应用程序在Azure应用程序服务上运行没有任何问题。

微软技术支持证实了Spring Boot 3和Azure App Service结合无代码应用程序洞察的问题。该问题将在2023年2月中旬的下一次平台更新中修复。

支持提供了一个解决方案:手动安装Application Insights SDK(但我们还没有测试这个)

这个问题没有官方文章。我想这可能是一个宣布这个问题的好地方,以帮助其他开发人员。

最新更新