首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat8上的AntiResourceLocking

Tomcat8上的AntiResourceLocking
EN

Stack Overflow用户
提问于 2015-12-08 18:39:41
回答 4查看 11.3K关注 0票数 5

我们在Windows上运行Tomcat8,重新部署应用程序有时会因为Windows的属性锁定而失败。

我找到以下文档,说明您必须将AntiResourceLocking-attribute添加到Context-element:Apache Tomcat 8 Configuration Reference

我们所有的服务器都是使用脚本构建的,所以在server.xml中这样做应该不是问题(如果它可以工作的话?):

代码语言:javascript
复制
<Engine name="Catalina" defaultHost="localhost">
  <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
    <Context antiResourceLocking="true"></Context>
  </Host>
</Engine>

当服务器重新启动时,Tomcat会打印以下错误,而我们并不知道到底是什么错误:

代码语言:javascript
复制
Failed to initialize component     [StandardEngine[Catalina].StandardHost[localhost].StandardContext[null]]

Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[null]]

Caused by: java.lang.NullPointerException
at org.apache.catalina.core.StandardContext.getObjectKeyPropertiesNameOnly(StandardContext.java:6233)

以前有人这么做过吗?我是不是遗漏了什么?

EN

回答 4

Stack Overflow用户

发布于 2015-12-09 17:22:10

您缺少的是conf/server.xmlconf/context.xml之间的区别。

当您向conf/server.xml添加<Context .../>元素时,您正在定义一个单独的上下文(web应用程序)。这等效于在CATALINA_BASE/conf/<engine-name>/<host-name>/<context-name>.xml中或在打包为web应用程序一部分的/META-INF/context.xml文件中定义<Context .../>元素。

conf/context.xml中的<Context .../>元素定义了所有上下文(web应用程序)的默认值。

您在conf/server.xml中添加的单个上下文元素失败了,因为您没有指定路径。

如果您真的想为所有web应用程序启用反资源锁定,那么您需要将antiResourceLocking="true“作为属性添加到CATALINA_BASE/conf/context.xml中的<Context .../>元素。

顺便说一句,此选项只是解决web应用程序中的资源泄漏问题的变通方法。您可能需要考虑花点时间来修复这些资源泄漏。

票数 7
EN

Stack Overflow用户

发布于 2019-03-20 14:21:11

有关推荐方法,请访问http://tomcat.apache.org/tomcat-8.0-doc/config/context.html

您可以在WAR中的META-INF/context.xml中定义context.xml,也可以定义conf/Catalina/localhost WAR_NAME.xml

在xml中配置antiResourceLocking

  • 在context.xml中添加以下标记

<Context antiResourceLocking="true"></Context>

票数 2
EN

Stack Overflow用户

发布于 2020-05-04 19:41:13

对于我来说,当两个应用程序在同一个tomcat上,但在不同的端口上时,我遇到了一个非常类似的问题,在Server.xml文件中定义为2x 服务标签。其中一个配置的服务无法启动。日志类似于所描述的。

问题在于<Context docBase="/appliccation2" ...>路径中的docBase无效,对于安装在Windows上的tomcat和本地工作的tomcat来说,相对路径就足够了,但是对于在linux服务器上配置tomcat,在我的情况下定义的路径应该是直接位置<Context docBase="/opt/.../webapps/application2" ...>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34153700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档