下载的jetty-distribution-9.2.1.v20140609,算是目前为止的最新版本,jetty的版本比较多,而且各种版本有一定的差异,感觉这点不如tomcat。
1.解压jetty到指定的目录,该目录就是$(JETTY_HOME)
进入到该目录,运行java -jar start.jar,就可以启动jetty了。
2.运行jetty的demo-base
cd ${JETTY_HOME}/demo_base 目录,运行 java -jar ../start.jar 就可以启动demo-base并看到jetty的欢迎界面了。
3.修改jetty运行端口
(1)命令启动时指定端口号: java -jar start.jar jetty.port=8081
(2)修改配置文件: 修改${JETTY_HOME}/start.d/http.ini中指定的端口号。
4. 部署web应用
和tomcat相同,直接放到${JETTY_HOME}/webapps下面就行,看网上说还需要改什么设置,这里测试了一下,直接放上就可以启动。这里部署的是标准的web应用。如果文件夹或者war包名称是root,jetty视为根目录。
5.热部署
jettty可以通过监控目录的变化来部署应用,如果你往目录里面添加一个web应用,jetty的部署管理器(DM deployment manager)就会部署一个新的上下文。可以通过配置文件修改相关的属性,该文件的默认位置是${JETTY_HOME}/etc/jetty-deploy.xml
/webapps
/etc/webdefault.xml
1
true
6.Maven和Jetty
使用嵌入式JETTY和MAVEN
MAVEN使用约定优于配置,所以最好是使用MAVEN推荐的工程结构。可以使用archetypes快速设置maven项目,现在为这个简单的例子使用手工建立工程结构。
> mkdir JettyMavenHelloWorld
> cd JettyMavenHelloWorld
> mkdir -p src/main/java/org/example
windows下可以使用md命令建立多级目录,在路径src/main/java/org/example/下建立HelloWorld.java类,内容如下:
package org.example;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
public class HelloWorld extends AbstractHandler
{
public void handle(String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().println("Hello World
");
}
public static void main(String[] args) throws Exception
{
Server server = new Server(8080);
server.setHandler(new HelloWorld());
server.start();
server.join();
}
}
建立POM描述文件,pom.xml描述文件描述了工程的名称和依赖,使用文本编辑器在JettyMavenHelloWorld目录下建立pom.xml,内容如下
4.0.0
org.example
hello-world
0.1-SNAPSHOT
jar
Jetty HelloWorld
9.0.2.v20130417
org.eclipse.jetty
jetty-server
${jettyVersion}
org.codehaus.mojo
exec-maven-plugin
1.1
java
org.example.HelloWorld
编译和运行HelloWorld.java类
> mvn clean compile exec:java
编译成功后,可以访问http://localhost:8080/会看到页面中打印出HelloWorld字样。