解决Idea中Jetty热部署时无法更改JS

烟雨 6年前 (2020-04-15) 阅读数 695 #Idea
文章标签 IdeaJava

用IDEA开发web项目使用Jetty(maven插件/本地Jetty)跑的时候经常遇到项目启动后,无法编辑js文件和css文件。抱错如下:

QQ截图20220123204828.png问题出现在Jetty上,Jetty会使用内存映射文件来缓存静态文件,其中包括.js文件。在Windows下面,使用内存映射文件会导致文件被锁定。 解决方案是不使用内存映射文件来做缓存。

找到本地Jetty所在的jar目录,找到jetty-webapp-xxxxx.jar(xxxxx是版本号)。用压缩软件打开,找到目录:\org\eclipse\jetty\webapp 下的webdefault.xml,修改里面的内容,useFileMappedBuffer的值改为false,最后保存:
<init-param>
    <param-name>useFileMappedBuffer</param-name>
    <!-- true改为false -->
    <param-value>false</param-value>
</init-param>

如果是使用maven的Jetty插件的话,可以找到maven目录相应的jetty.jar,然后更改方式和上面的一样,也可以可以通过pom文件修改Jetty配置:

<plugin>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>jetty-maven-plugin</artifactId>
  <version>7.5.1.v20110908</version>
  <configuration>
    <connectors>
      <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
        <port>8088</port>
        <maxIdleTime>60000</maxIdleTime>
      </connector>
    </connectors>
    <systemProperties>
      <systemProperty>
        <name>org.eclipse.jetty.util.URI.charset</name>
        <value>UTF-8</value>
      </systemProperty>
    </systemProperties>
    <webAppConfig>
      <!-- 配置成我们自己的webdefault.xml -->
      <defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>
    </webAppConfig>
  </configuration>
</plugin>


版权声明

非特殊说明,本文由Zender原创或收集发布,欢迎转载。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

作者文章
热门