繁体   English   中英

Azure WebApp中的Tomcat无法启动

[英]Tomcat in Azure WebApp does not start

我已经在Azure中创建了一个webapp,并在D:\\ home \\ site \\ wwwroot \\ webapps文件夹中上传了一个war文件。 我使用具有标准定价层的应用服务计划。 我已经完成了在“应用程序设置”菜单中激活Java和Tomcat的设置:

  • Java版本:Java 8
  • Java次要版本:最新
  • Web容器:最新的Tomcat

如果未激活选项“始终打开”,则我的Tomcat无法启动。 没有启动Java进程,我的war文件未解压缩。 我已经完成了几次停止/启动应用程序的操作,没有任何反应。 激活“始终在线”后,Tomcat将启动并部署该应用程序。 具有免费定价层的服务计划中不提供“始终在线”。

有人知道为什么Azure会这样做吗?

我试图重现您通过FTP所说的行为,这就是我在Tomcat 8.5.6上观察到的@GopiKolla所说的,如下所示。

  1. 如果禁用了Always on选项,则上传的.war文件不会自动解压缩。 但是,当我尝试访问.war文件的Web应用程序的URL时,又经过十秒钟后,将其解压缩到一个名为.war的目录。
  2. 如果启用此选项,则所有war文件将被自动解压缩。

我检查了所有配置和环境变量,包括属性autodeployunpackWARsdeployOnStartup等,这些不会随选项开关而改变。 我搜索了这种情况下从Tomcat的官方相关文件的交代( 123 ),有这能解释一下什么有用的信息。 仅凭猜测和经验,我认为Azure通过IIS限制了运行时的生命周期,以确定是否通过选项Always on来激活web.config中定义的httpPlatformHandler进程。

希望能帮助到你。

感谢您的反馈意见。 昨天我再次进行了测试,我想我已经了解了Azure WebApp的工作方式。 当您将战争文件上传到webapps文件夹中时,即使将tomcat配置为解压缩并加载战争,Java进程也不会启动。

仅当您单击网站的URL时,它才会启动java进程。

如果不单击,则不会分叉Java进程。 第一次单击将为Tomcat派生Java进程。

我想这是IIS工作者的正常行为。

因此,现在,当我部署Java应用程序时,我总是对URL进行触摸以确保Web应用程序确实启动。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM