我们在Windows上运行Tomcat8,由于Windows锁定了大量的属性,重新部署应用程序有时会失败.
我发现这个文档说你必须将AntiResourceLocking-attribute 添加到Context-element:Apache Tomcat 8 Configuration Reference
我们所有的服务器都是使用脚本构建的,所以这样做server.xml应该不是问题(如果它有效?):
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context antiResourceLocking="true"></Context>
</Host>
</Engine>
Run Code Online (Sandbox Code Playgroud)
当服务器重新启动时,Tomcat会打印出以下错误,我们对于出现的问题没有真正的线索:
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)
Run Code Online (Sandbox Code Playgroud)
有没有人这样做过?我错过了什么吗?
你所缺少的是之间的差异conf/server.xml和conf/context.xml.
向您添加<Context .../>元素时,conf/server.xml正在定义单个上下文(Web应用程序).这相当于在作为Web应用程序的一部分打包的文件<Context .../>中CATALINA_BASE/conf/<engine-name>/<host-name>/<context-name>.xml或/META-INF/context.xml文件中定义元素.
的<Context .../>在元件conf/context.xml定义了所有上下文(web应用)的默认值.
您添加的单个Context元素conf/server.xml失败,因为您尚未指定路径.
如果您真的想为所有Web应用程序启用反资源锁定,那么您需要将antiResourceLocking ="true"作为属性添加到<Context .../>元素中 CATALINA_BASE/conf/context.xml.
另外,此选项仅适用于Web应用程序中的资源泄漏.您可能需要考虑花时间修复这些资源泄漏.
Gha*_*yel -2
请检查 web.xml 中准确映射的所有 servlet 类,并确认它们的路径在服务器上实际存在。这就是引发异常的原因org.apache.catalina.LifecycleException: Failed。
| 归档时间: |
|
| 查看次数: |
7086 次 |
| 最近记录: |