我试图通过在 webdefault.xml中设置为 false 的技术来解决 Jetty 在 Windows 上锁定静态文件的常见问题。useFileMappedBuffer
不幸的是,每次 Jetty 都没有选择我自定义的 webdefault.xml。
我正在使用 Apache Maven 3.0.2。我试过使用maven-jetty-plugin (v6.1.26)和jetty-maven-plugin (v8.0.0.M2)但没有区别。在运行 Jetty 之前,我也尝试过运行 clean 和重建。
每次我都验证了我的 webdefault.xml 是从与插件相同的版本中获取的并且具有正确的设置,即仅将此设置从 true 更改为 false:
...
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value>
</init-param>
...
这是我的 pom.xml Jetty 插件部分的样子:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<configuration>
<contextPath>/</contextPath>
<webDefaultXml>src/main/resources/webdefault.xml</webDefaultXml>
</configuration>
</plugin>
我还尝试更改文件的路径:
<webDefaultXml>${basedir}/src/main/resources/webdefault.xml</webDefaultXml>
在任何地方我都看到了这个确切的解决方案,听起来它对其他人有用(尽管我发现有人遇到我的问题的一个实例)。码头的启动在输出中有这个:
> mvn jetty:run
...
[INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
[INFO] Web overrides = none
...
这进一步让我认为它没有被应用。输出中的所有其他路径都是正确的。
我在 Jetty 运行时看到的最直接的问题是,每当我使用 IntelliJ IDEA 10 编辑静态文件(JavaScript、CSS 等)时,都会收到以下错误消息:
Cannot save file:
D:\...\... (The requested operation cannot be performed on a file with a user-mapped section open)
在我停止 Jetty 之后,它保存得很好。每次都会发生这种情况。
有什么想法我可能做错了吗?提前致谢。