maven-jetty-plugin保存文件报错:请求的操作无法在使用用户映射区域打开的文件上执行

来源:互联网 发布:java跨平台 编辑:程序博客网 时间:2024/05/02 12:51


使用jetty-maven-plugin 在eclipse中进行运行调试,碰到无法编辑保存webapp下的文件

 

提示:请求的操作无法在使用用户映射区域打开的文件上执行

 

解决方法:

 

从 jetty 7 开始,jar存放在maven仓库中的路径为org/eclise/jetty/jetty-webapp


打开对应的版本的jar包
修改jar中的org/mortbay/jetty/webapp/webdefault.xml文件

  1. <init-param>     
  2.   <param-name>useFileMappedBuffer</param-name>     
  3.   <param-value>true</param-value> <!-- 将这个值设为 false -->     
  4. </init-param>     

改好后放回jar包

另一种办法是将webdefault.xml 提取出来,修改后放在给定位置,然后配置jetty插件的信息

  1. <configuration>      
  2.   <webAppConfig>   
  3.     <defaultsDescriptor>src/test/resources/webdefault.xml</defaultsDescriptor>   
  4.   </webAppConfig>    
  5. </configuration>  

对于jetty9之后的版本可以这样改:
把webdefault.xml文件复制到src/main/resources/目录下,修改useFileMappedBuffer的值为false。然后修改pom.xml如下:

<plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.2.12.M0</version>
                <configuration>
                    <webApp>
                        <defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>
                    </webApp>
                    <contextPath>/</contextPath>
                    <scanIntervalSeconds>2</scanIntervalSeconds>
                </configuration>
            </plugin>  

参考:

Configuring Your WebApp

These configuration parameters apply to your webapp. They are common to almost all goals.

webApp

Represents an extension to the class org.eclipse.jetty.webapp.WebAppContext. You can use any of the setter methods on this object to configure your webapp. Here are a few of the most useful ones:

contextPath

The context path for your webapp. By default, this is set to /.

descriptor

The path to the web.xml file for your webapp.

defaultsDescriptor

The path to a webdefault.xml file that will be applied to your webapp before the web.xml. If you don't supply one, Jetty uses a default file baked into the jetty-webapp.jar.

overrideDescriptor

The path to a web.xml file that Jetty applies after reading your web.xml. You can use this to replace or add configuration.

tempDirectory

The path to a dir that Jetty can use to expand or copy jars and jsp compiles when your webapp is running. The default is${project.build.outputDirectory}/tmp.

baseResource

The path from which Jetty serves static resources. Defaults to src/main/webapp.

resourceBases

Use instead of baseResource if you have multiple dirs from which you want to serve static content. This is an array of dir names.

baseAppFirst

Defaults to "true". Controls whether any overlaid wars are added before or after the original base resource(s) of the webapp. See the section on overlaid wars for more information.

contextXml

The path to a context xml file that is applied to your webapp AFTER the webApp element.


来源: <http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#configuring-your-webapp>
0 0