Azure上的自定义Tomcat配置(平台即服务)

时间:2017-12-11 16:04:49

标签: java spring azure tomcat

我们最近将弹簧启动依赖性从1.3.5升级到1.5.8;在部署到Azure托管的Tomcat容器时,我们注意到部署无法正常启动。进一步检查catalina日志:

无法完全删除

org.apache.catalina.startup.ExpandWar.deleteDir。其余文件的存在可能会导致问题。

我们知道可以通过将 antiResourceLocking =" true" 添加到context.xml来纠正此问题,但是由于我们希望将我们的平台保留为服务,无权修改此配置。

有没有办法在 web.config 中设置此配置,或者在azure上以其他方式设置此配置,同时将tomcat容器维护为服务?

2 个答案:

答案 0 :(得分:1)

因此,解决此问题的方法是将context.xml放入src/main/webapp/META-INF,如here所述。

该解决方案详见Apache Tomcat配置参考的Context Container section

由于我们对D:/具有读取权限,因此我只是从那里的Tomcat安装中调整了context.xml并通过更改<Context antiResourceLocking="true">对其进行了修改。

这样,我们就不需要从市场上安装Tomcat或将其打包成战争。

答案 1 :(得分:0)

据我所知,当我们使用Azure Webapps服务时,除了路径D:\之外,我们无权在路径D:\home下运行任何内容。

如果使用的Tomcat路径不是来自市场,则Tomcat路径为D:\Program Files (x86)\apache-tomcat-X.0.X,不能由用户角色操作并获得管理员权限。

但是,从市场创建带有Tomcat的App,Tomcat将存在于您拥有配置权限的路径D:\home\site\wwwroot\bin

或者,您可以使用您的应用发布自己的Tomcat实例,然后您可以编辑配置文件。

请参阅here中的web.config设置和tomcat模板。

希望它对你有所帮助。