简介
在 java web 项目开发过程中,如果遇到需要频繁重启服务器的情况,可以使用 jetty 来代替 tomcat,因为使用 jetty 的话,我们可以直接在项目中添加一个类,在其 main 方法中添加启动的方法即可,免去了部署与发布的过程,项目的启动比 tomcat 要快的多
实现步骤
-
首先要使用的 jar 包是 jetty-server-8.1.8.jar,将其添加到项目目录下即可
-
在启动类中添加如下方法, 参数依次是: 端口号,服务器地址,项目 WebContent 根目录路径,Web.xml文件路径,项目名
public static void start(int portNumber, String connectorAddress, String resourceBase, String webFilePath, String projectName) {
try {
Server server = new Server();
Connector connector = new SelectChannelConnector();
connector.setHost(connectorAddress);
connector.setPort(portNumber);
server.setConnectors(new Connector[] {
connector
});
server.setStopAtShutdown(true);
WebAppContext webAppContext = new WebAppContext(resourceBase, "/" + projectName);
webAppContext.setDescriptor(resourceBase + webFilePath);
webAppContext.setResourceBase(resourceBase);
webAppContext.setContextPath("/" + projectName);
webAppContext.setDisplayName(projectName);
webAppContext.setClassLoader(Thread.currentThread().getContextClassLoader());
webAppContext.setConfigurationDiscovered(true);
webAppContext.setParentLoaderPriority(true);
server.setHandler(webAppContext);
server.start();
//server.join();
System.out.println("http://" + connectorAddress + ":" + portNumber + "/" + projectName);
} catch (Exception e) {
e.printStackTrace();
}
}
- 启动的时候,可以像下面这样调用
public static void main(String[] args) {
startProject(8080, "localhost", "WebContent", "/WEB-INF/web.xml", "AutoMationTool");
}
特别注意的是要在 spring-servlet.xml 文件中添加如下配置
<!--Only For jetty -->
<mvc:default-servlet-handler/>
否则,可能会造成静态页面无法成功调用。