Java Azure WebApp中的Tomcat未启动
我在Azure中创建了一个webapp,并在D:\home\site\wwwroot\webapps文件夹中上载了一个war文件。我使用具有标准定价层的应用程序服务计划。 我已经完成了应用程序设置菜单中激活Java和Tomcat的设置:Java Azure WebApp中的Tomcat未启动,java,azure,azure-web-app-service,Java,Azure,Azure Web App Service,我在Azure中创建了一个webapp,并在D:\home\site\wwwroot\webapps文件夹中上载了一个war文件。我使用具有标准定价层的应用程序服务计划。 我已经完成了应用程序设置菜单中激活Java和Tomcat的设置: java版本:Java8 java次要版本:最新版本 Web容器:最新的Tomcat 如果“始终打开”选项未激活,则我的Tomcat不会启动。没有启动java进程,我的war文件没有解压缩。我已经做了几次应用程序的停止/启动,但什么都没有发生。 一旦我激活了
- java版本:Java8
- java次要版本:最新版本
- Web容器:最新的Tomcat
有人知道Azure为什么会这样吗 我试图重现您通过FTP所说的行为,以下是我在Tomcat 8.5.6上观察到的@GopiKolla所说的行为,如下所示
始终打开
选项,则上载的.war
文件将不会自动解压缩。然而,当我试图访问.war
文件的webapp的url时,它在十秒钟后被解压到一个名为war的目录中autodeploy
,unpacwars
,deployOnStartup
,等等,这些不会随选项开关而改变。我从Tomcat(,)的官方相关文档中搜索了对该案例的解释,没有任何有用的信息可以解释它。只是一个猜测&根据我的经验,我认为Azure通过IIS限制运行时的生命周期,以确定是否通过选项始终打开激活web.config
中定义的httpPlatformHandler
进程
希望有帮助。谢谢您的反馈。
我昨天又做了一次测试,我想我已经了解了Azure WebApp的工作原理。
当您在webapps文件夹中上传war文件时,即使tomcat被配置为解包并加载war,java进程也不会启动
只有当您单击网站的URL时,它才会启动java进程。
如果不单击,则不会生成任何java进程。第一次单击将为Tomcat生成java进程
我想这是IIS工作人员的正常行为
所以现在,当我部署Java应用程序时,我总是在URL上执行一次触摸,以确保webapp真正启动 它是在您第一次请求服务后启动/解压,还是“从未”启动?它从未启动。当我停用“始终打开”选项时,java进程被终止。听起来像是Azure支持电话或MSDN论坛。这似乎不像IMHOAs@CtrlDot在上面所说的正常行为。我观察到的行为是,当“始终打开”未激活时,活动(启动/解压)会在第一次请求时发生。经过一段非活动时间后,再次取消部署应用程序并停止tomcat。