使用Maven + Eclipse + Jetty 进行开发,但有一个问题:那就是如果已经运行着Jetty,在这种情况下修改.js文件,在eclipse里保存都会失败,eclipse给出的错误信息是文件被锁定。这样迫使每次都得重启Jetty,对Javascript的开发非常不方便。
原因是如果NIO被支持的话,Jetty会使用内存映射文件来缓存静态文件,其中包括.js文件。在Windows下面,使用内存映射文件会导致文件被锁定。解决方案是不使用内存映射文件来做缓存。如果你使用Maven,那就很简单了。步骤如下:
找到jetty.jar后解压,从中找到webdefault.xml,它在jar文件中的路径是org/mortbay/jetty/webapp/webdefault.xml。把它拷贝到项目中,比如src/test/resources/webdefault.xml.
找到useFileMappedBuffer参数,把值设成false
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>true</param-value> <!-- change to false -->
</init-param>
在pom.xml中,设置jetty使用更新过的webdefault.xml文件
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.10</version>
<configuration>
<contextPath>/</contextPath>
<scanIntervalSeconds>3</scanIntervalSeconds>
<scanTargetPatterns>
<scanTargetPattern>
<directory>src/main/webapp</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</scanTargetPattern>
</scanTargetPatterns>
<webDefaultXml>src/main/resources/webdefault.xml</webDefaultXml>
<defaultsDescriptor>webdefault.xml</defaultsDescriptor>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>9093</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
</configuration>
</plugin>
好了,这样就解决问题了!
分享到:
相关推荐
在Eclipse中配置Maven项目以使用Jetty服务器是一个常见的任务,这主要适用于开发和测试阶段,因为它提供了快速的启动和重启能力。Jetty是一个轻量级、高性能的开源HTTP服务器和Servlet容器,广泛用于Java Web应用。...
当我们在Eclipse中修改HTML、CSS或JavaScript文件后,由于Jetty的热部署特性,这些修改通常会自动反映到正在运行的应用中,无需手动重启服务器。 **3.2 修改类方法后自动生效** 对于Java源代码的修改,如果涉及到...
然而,在使用Maven Jetty插件进行项目构建和部署时,可能会遇到一个常见问题:当修改了HTML、CSS或JavaScript文件后,这些文件被浏览器加载后会出现“死锁”现象,导致文件无法被进一步修改和保存。 #### 问题分析 ...
1. **环境准备**:确保已安装Java JDK、Maven、IDE(如Eclipse或IntelliJ IDEA),以及可能需要的服务器环境,如Tomcat或Jetty。 2. **SSH框架集成**:导入Struts2、Spring、Hibernate的依赖,并配置相应的配置文件...
Eclipse会自动生成基本的Maven项目结构,包括`pom.xml`文件,它是Maven项目的核心配置文件。 打开`pom.xml`,我们需要添加项目的依赖,特别是Web项目所需的库。对于一个基础的Web项目,我们可能需要Servlet API和...
Eclipse的插件体系使得其可以扩展支持多种编程语言和框架,如Python、C++、JavaScript等,而Maven插件则为Eclipse带来了强大的构建和依赖管理能力。 Maven是Apache软件基金会开发的一个项目管理和综合工具,主要...
在Jetty 8中,我们主要会用到`org.eclipse.jetty.server.Server`类,它是Jetty服务器的核心。以下是一个简单的内嵌Jetty启动示例: ```java import org.eclipse.jetty.server.Server; import org.eclipse.jetty....
5. **热部署**:为了提高开发效率,Maven有热部署插件,如maven-eclipse-plugin或maven-idea-plugin,它们可以与IDE集成,实现修改后自动编译并更新到运行中的服务器。另外,maven-jetty-plugin和maven-tomcat-...
1. **导入Maven项目到Eclipse**:在Eclipse中选择“File” > “Import” > “Maven” > “Existing Maven Projects”,然后导航到Maven项目的根目录,选择`pom.xml`文件导入。 2. **转换为Dynamic Web Project**:...
【Eclipse Spring Boot Maven Web Demo 简单项目实例】是一个实用的学习资源,旨在帮助开发者快速搭建基于Spring Boot、Maven和Eclipse的Web应用程序。这个项目实例为初学者提供了良好的起点,让他们能够理解并实践...
在实际使用中,开发人员可以通过Jetty的Maven插件或Gradle插件将Jetty集成到构建流程中,实现快速的开发和测试循环。 尽管Jetty 6.1.2rc2是一个较旧的版本,对于理解Jetty的基本工作原理和特性仍然很有帮助。然而,...
在IT行业中,开发Java Web应用时,Eclipse是一款非常受欢迎的集成开发环境(IDE),而Maven则是一个强大的项目管理工具。本篇文章将详细介绍如何在Eclipse中利用Maven创建一个Web工程,以便于管理和构建项目。 首先...
6. **资源管理**:Jetty插件可以管理Web应用所需的静态资源,如HTML、CSS、JavaScript文件,以及图片和图标(如压缩包中的`icons`目录)。 7. **库依赖**:`lib`目录通常包含插件运行所需的各种依赖库,确保Jetty能...
对于Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.eclipse.jetty <artifactId>jetty-server <version>9.x.y.z</version> <!-- 替换为最新版本 --> <groupId>org.eclipse.jetty ...
【标题】"eclipse+WB.rar" 指的是一个包含Eclipse集成开发环境(IDE)与Webclipse插件的压缩文件。Eclipse是全球广泛使用的开源Java IDE,它为开发者提供了编写、调试和部署Java应用程序的强大工具。而Webclipse是...
如果你的项目使用Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.eclipse.jetty <artifactId>jetty-server <version>8.x.y</version> <!-- 替换为具体版本 --> <groupId>org.eclipse.jetty ...
Jetty Run插件是针对Java Web应用程序开发的一款实用工具,主要用在Jetty服务器上,它简化了开发过程,使得开发者能够快速启动和运行基于Jetty的Web项目。Jetty是一个轻量级、高性能的开源HTTP服务器和Servlet容器,...
- **模块化:** Jetty的模块化设计使得开发者可以按需选择和加载功能,减少不必要的依赖,提高应用的启动速度。 **2. 前端应用** 在前端开发中,Jetty可以作为一个小型的本地服务器,用于开发和测试目的。开发者...
Jetty Sample是一个示例项目,它展示了如何使用Jetty服务器来构建和运行Web应用程序。Jetty是一款开源的、轻量级的Java Web服务器和Servlet容器,广泛用于开发、测试和部署Web应用程序。在这个压缩包中,我们很可能...
这对于频繁修改和测试的J2EE项目来说尤其有用,它省去了手动上传文件或重启服务器的繁琐步骤,提高了开发迭代的效率。 要使用"ForceFileSynchronic",你需要先在Eclipse中安装这个插件。通常,你可以通过Eclipse的...