属性antiJARLocking
是什么意思?当我将其转换为 true / false 时,它有什么意义?
我在web-application的context.xml
文件中看到了这个属性:
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/poll">
<Resource name="jdbc/PollDatasource" auth="Container"
type="javax.sql.DataSource"
// etc etc
</context>
答案 0 :(得分:24)
来自Tomcat 7.0 documentation for Context Configuration:
&#34; antiJARLocking - 如果为true,Tomcat类加载器将采取额外措施,以避免在通过URL在JAR中访问资源时JAR文件锁定。这将影响应用程序的启动时间,但可能证明在可能发生文件锁定的平台或配置上有用。如果未指定,则默认值为false。&#34;
(他们试图解决的问题......我认为......锁定的JAR文件会阻止热重新部署等工作。)
阅读文档以获取更多信息。
antiJARLocking
属性被Tomcat 8及更高版本中的antiResourceLocking
属性替换。该文档提到了设置此属性的一些值得注意的副作用。
另见:
答案 1 :(得分:5)
Windows喜欢在类加载期间锁定文件,从而防止它们被手动删除或被其他应用程序打开。在取消部署和重新部署战争时,它也会导致问题。在Tomcat中,当您指定<Context antiJARLocking="true"/>
时,这将阻止Windows获取对您的jar的锁定