什么是antiJARLocking属性?

时间:2012-07-23 05:42:03

标签: java java-ee tomcat

属性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>

2 个答案:

答案 0 :(得分:24)

Tomcat 7

来自Tomcat 7.0 documentation for Context Configuration

  

&#34; antiJARLocking - 如果为true,Tomcat类加载器将采取额外措施,以避免在通过URL在JAR中访问资源时JAR文件锁定。这将影响应用程序的启动时间,但可能证明在可能发生文件锁定的平台或配置上有用。如果未指定,则默认值为false。&#34;

(他们试图解决的问题......我认为......锁定的JAR文件会阻止热重新部署等工作。)

阅读文档以获取更多信息。

Tomcat 8及更高版本

antiJARLocking属性被Tomcat 8及更高版本中的antiResourceLocking属性替换。该文档提到了设置此属性的一些值得注意的副作用。


另见:

答案 1 :(得分:5)

Windows喜欢在类加载期间锁定文件,从而防止它们被手动删除或被其他应用程序打开。在取消部署和重新部署战争时,它也会导致问题。在Tomcat中,当您指定<Context antiJARLocking="true"/>时,这将阻止Windows获取对您的jar的锁定