为什么要用Jetty?
我们在开发过程中,经常遇到修改一个java类,哪怕只修改了一行代码,也要重启Tomcat才能看到修改结果的情况。这样也许修改代码只花了5秒钟,要看到结果却需要等50秒钟。有没有一种方法可以不用重应用启服务器,直接可以看到修改结果,就像修改Jsp一样呢?
答案是有——那就是使用Jetty。
之前也有同事写过使用Jetty的案例,不过那是以插件的方式去用,我个人比较偏好“轻量”开发,不喜欢弄一大堆插件在eclipse里面,因此这里给大家提供另一种选择——直接以application的方式来运行Jetty,只需要将相应的jar包加入到类路径中去就行了。
第一步,引入相应的jar包
将附件中的压缩文件,解压到任意目录,然后在eclipse里面新建一个“User Libraries”,将这些jar添加进去。
然后将这个libraries添加到我们正在开发的项目中去。
第二步,编写Jetty启动程序
程序很简单,只有一个main方法即可:
public static void main(String[] args) throws Exception {
Server server = new Server();
Connector connector = new SelectChannelConnector();
connector.setPort(80); // 设置要监听的端口.
server.addConnector(connector);
WebAppContext context = new WebAppContext();
context.setContextPath("/irm"); // 设置上下文路径
// 设置web应用根路径
context.setResourceBase("D:/java/workspace/EKP-IRM/WebContent");
HandlerCollection handlerCollection = new HandlerCollection();
handlerCollection.addHandler(context);
server.setHandler(handlerCollection);
server.start();
}
第三步,开始调试
以debug方式运行第二步中编写的启动程序(注意一定要是debug方式,否则无法热加载改动过的Java类),打开浏览器,开始访问。
Jetty的局限性
只能热加载Java类,无法热加载资源文件、Struts配置文件、Spring配置文件等。
调试次数多了之后,容易出现热加载Java类失败的情况,此时不容易发觉,还以为自己改得不对。