通过FTP部署Azure Java而不是解包
我在Azure中创建了一个Web应用程序,并通过FTP将我的war文件上载到通过FTP部署Azure Java而不是解包,java,azure,deployment,ftp,Java,Azure,Deployment,Ftp,我在Azure中创建了一个Web应用程序,并通过FTP将我的war文件上载到webapps/my.war。它已成功解包和部署。下次我上传一个新版本的my.war,覆盖现有文件时,它将被解包和部署。当它第一次失败时,我发现除了删除webapp并创建一个新的webapp之外,没有其他方法可以恢复它 我已经尝试了所有我能想到的方法,包括在上传之前是否停止webapp,删除文件webapps/my和webapps/my.war等等 这是为什么?我如何修复它?我的意思是,PAAS应该是开箱即用的,所以我一
webapps/my.war
。它已成功解包和部署。下次我上传一个新版本的my.war
,覆盖现有文件时,它将被解包和部署。当它第一次失败时,我发现除了删除webapp并创建一个新的webapp之外,没有其他方法可以恢复它
我已经尝试了所有我能想到的方法,包括在上传之前是否停止webapp,删除文件webapps/my
和webapps/my.war
等等
这是为什么?我如何修复它?我的意思是,PAAS应该是开箱即用的,所以我一定是做错了一些基本的事情
我忘了提到我正在使用最新版本的Tomcat 8.0。这是Tomcat的一项功能,对Azure上的Tomcat来说不是一个错误,所以不需要修复任何东西。根据的Tomcat官方文档,对该案例的解释如下 在Windows上,已启用防锁定功能。请参考文档了解Tomcat 8.0的
conf/context.xml
中antiresourcelock=true
的效果
您需要重新启动webapp,让Tomcat删除旧版本以进行更新,或者在Tomcat关机时手动删除它们。Nice catch!然而,在上传新的war文件之前停止webapp似乎还不够。到目前为止,最好的结果是停止webapp并等待10秒钟,然后再上传新版本。由于我正在设置一个自动部署,这种方式并不是很好,因为我需要确定它每次都能工作。等待10秒钟更像是在期待最好的结果。无论如何,我想我对此无能为力?@Johan实际上,你可以通过FTP或Kudu控制台将tomcat实例上传到Azure WebApp的路径
wwwroot
,然后按照官方教程配置web.config
文件,以使IIS能够启动你的自定义tomcat。