Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。(Jetty是一个开源的软件,可以作为HTTP服务,javax.servlet的容器。)
配置jetty server的步骤:
创建server
配置connector
配置handler
配置servlet
启动server
1. 安装maven
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.
如果你已经有十次输入同样的Ant targets来编译你的代码、jar或者war、生成javadocs,你一定会自问,是否有一个重复性更少却能同样完成该工作的方法。Maven便提供了这样一种选择,将你的注意力从作业层转移到项目管理层。Maven项目已经能够知道如何构建和捆绑代码,运行测试,生成文档并宿主项目网页.
(1)下载将jdk加压后放到/usr/local目录下:
[[email protected] ~]#chmod 755 jdk-6u5-Linux-x64.bin
[[email protected] ~]# ./jdk-6u5-linux-x64.bin
[[email protected] ~]#mv jdk1.6.0_05 /usr/local
建立/usr/local/下的jdk软连接方便以后版本升级 :
[[email protected] ~]# ln -s /usr/local/jdk1.6.0_05/ /usr/local/jdk
(2)安装apache-maven,并设置环境变量
[[email protected] zy]# tar -zxvf apache-maven-2.2.1-bin.tar.gz
[[email protected] zy]# mv apache-maven-2.2.1 /usr/local/maven
[[email protected] zy]#vim /etc/profile
添加以下内容:
JAVA_HOME=/usr/local/jdk1.6.0_05
JAVA_BIN=/usr/local/jdk1.6.0_05/bin
PATH=$PATH:$JAVA_BIN:/usr/local/maven/bin
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
JETTY_HOME=/usr/local/jetty
export JAVA_HOME JAVA_BIN PATH CLASSPATH JETTY_HOME
[[email protected] zy]# source /etc/profile
[[email protected] zy]# mvn --version
Apache Maven 2.2.1 (r801777; 2009-08-07 03:16:01+0800)
Javaversion: 1.6.0_05
javahome: /usr/local/jdk1.6.0_05/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "2.6.18-238.el5" arch: "amd64" Family: "unix"
2. 安装启动jetty
[[email protected] zy]# unzip jetty-distribution-7.3.0.v20110203.zip
[[email protected] zy]# mv jetty-distribution-7.3.0.v20110203 /usr/local/jetty/
[[email protected] zy]# cd /usr/local/jetty/
[[email protected] jetty]# java -jar start.jar【或者进去到bin目录,然后执行./jetty.sh start 】
[[email protected] bin]# ./jetty.sh start
Starting Jetty: STARTED Jetty Mon Jul 11 11:54:03 CST 2011
[[email protected] bin]# 2011-07-11 11:54:04.014:INFO::Redirecting stderr/stdout to /usr/local/jetty/logs/2011_07_11.stderrout.log
在浏览器中输入 http://192.168.55.229:8080/remote.html(这里加上remote.html的原因是避免和tomcat冲突,实际上http://192.168.55.229:8080也能够访问到,但是前提是必须把tomcat给禁掉。或者在jetty.xml中将端口改成8081,此时我们就可以直接访问http://192.168.55.229:8081)
jetty目录结构如下:
* contexts 热部署目录
* etc jetty配置文件目录
* examples jetty示例
* extras jetty可选扩展
* lib 包含jetty所需的jar文件
* LICENSES 就是LICENSES
* modules 子模块
* patches 补丁patches
* pom.xml is jetty的maven2构建文件
* project-website jetty7网站
* README.txt readme.txt
* start.jar is jetty7主程序
* VERSION.txt
* webapps应用路径,发布的引用基本都放这里
3.简单部署一个应用
[[email protected] ~]# cd /usr/local/jetty/webapps/
[[email protected] webapps]# ls
test.war
[[email protected] webapps]# mkdir test1
[[email protected] webapps]# cd test1
[[email protected] test1]# vi hello.jsp
<html>
<body>
<h4>simple test</h4>
<%--echo hello world--%>
<%@page language="java"%>
<%="Hello World"%>
</body>
</html>
[[email protected] test1]# cd /usr/local/jetty/
[[email protected] jetty]#java -jar start.jar
2011-07-11 13:34:16.175:INFO::Deployable added: /usr/local/jetty/webapps/test1
2011-07-1113:34:16.411:INFO::started.e.j.w.WebAppContext{/test1,file:/usr/local/jetty/webapps/test1/},/usr/local/jetty/webapps/test1
【或者进去bin目录执行命令./jetty.sh start】
[[email protected] bin]# ./jetty.sh start
Starting Jetty: STARTED Jetty Mon Jul 11 13:38:55 CST 2011
[[email protected] bin]# 2011-07-11 13:38:56.122:INFO::Redirecting stderr/stdout to /usr/local/jetty/logs/2011_07_11.stderrout.log
在浏览器中输入:http://192.168.55.229:8080/test1/hello.jsp
1.把jenkins.war包复制到jetty的webapps下面
2.在jetty的webapps下面新建jenkins.xml文件
内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/jenkins</Set>
<Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/jenkins.war</Set>
<Get name="securityHandler">
<Set name="loginService">
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">Jenkins Realm</Set>
<Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
</New>
</Set>
</Get>
</Configure>
3.配置jetty热部署
在jetty的start.ini文件中加入:
jetty.deploy.monitoredDirName=webapps
jetty.deploy.scanInterval=1
4.启动jetty:
在jetty根目录下:java -jar start.jar
5.在jenkins中项目配置中填写post steps脚本,linux服务器上选execute shell
例如:
cd target
cp lanyue-api.war /home/app/jetty/webapps