栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

对Windows上的锁定文件进行故障排除

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

对Windows上的锁定文件进行故障排除

Jetty会为Web应用程序缓冲静态内容,例如HTML文件,CSS文件,图像等。如果你使用的是NIO连接器,Jetty将使用内存映射文件来执行此操作。问题是在Windows上,内存映射文件会导致文件锁定,因此你无法更新或替换文件。实际上,这意味着你必须停止Jetty才能更新文件。

Remedy

Jetty提供了一个配置开关,用于DefaultServlet启用或禁用对内存映射文件的使用。如果你在Windows上运行并且遇到文件锁定问题,则应将此开关设置为禁用内存映射文件缓冲区。使用以下选项之一来配置交换机。

Using override-web.xml

可以将override-web.xml文件放置在你的webapp WEB-INF目录中,以更改DefaultServlet用于内存映射文件缓冲区的默认设置。创建一个override-web.xml具有适合你的Servlet规范版本的标头的文件,并将以下内容放置在元素中:

 <servlet>   <servlet-name>default</servlet-name>   <init-param>     <param-name>useFileMappedBuffer</param-name>     <param-value>false</param-value>   </init-param> </servlet>

Using a Context XML File

你可以创建或更新上下文xml文件,该文件将你的Web应用程序配置为应用设置以禁用内存映射文件缓冲区。将以下内容添加到上下文xml文件中:

  <Call name="setInitParameter">      <Arg>org.eclipse.jetty.servlet.Default.useFileMappedBuffer</Arg>      <Arg>false</Arg>  </Call>

Using the Jetty Maven Plugin

如果你不想使用其他两种解决方案中的任何一种,则可以直接配置插件以禁用内存映射文件缓冲区。在元素下的插件配置中

添加以下内容:

  <_initParams>          <org.eclipse.jetty.servlet.Default.useFileMappedBuffer>false</org.eclipse.jetty.servlet.Default.useFileMappedBuffer>  </_initParams>

Alternate Remedy

你可以强制WebAppContext始终在部署时复制Web应用程序目录。Web应用程序的基本目录(即存在静态内容的根目录)将被复制到temp目录。在xml文件中进行配置,如下所示:

<New id="myWebAppContext"  >  <Set name="contextPath">/</Set>  <Set name="war">./webapps/fredapp</Set>  <Set name="copyWebDir">true</Set>  .  .</New>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/432172.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号