Jetty简介
Jetty是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。
下载Jetty 9。
(下载JDK1.7,Apache Maven 3.3.3)
安装JDK
检查系统是否自带java,如果有的话则应先将其卸载。
<code>java -version </code><code>#检查版本</code>
<code>rpm -qa | </code><code>grep</code> <code>java </code><code>#查看安装的jdk包</code>
<code>rpm -e java-1.7.0-openjdk -–nodeps </code><code>#卸载jdk</code>
<code>rpm -e java-1.6.0-openjdk -–nodeps</code>
解压安装包
<code># tar zxvf jdk-7u79-linux-x64</code>
<code># chmod +x -R /usr/loacl/jdk-7u79-linux #赋权限</code>
安装maven
<code># tar xf apache-maven-3.3.3-bin.tar.gz</code>
<code># mv apache-maven-3.3.3 /usr/local/maven</code>
安装jetty
<code># unzip jetty-distribution-9.2.6.v20141205.zip</code>
<code># mv jetty-distribution-9.2.6.v20141205 /usr/local/jetty</code>
配置环境变量,启动Jetty
vim /etc/profile #在文件末尾添加如下几行
<code>export</code> <code>JAVA_HOME=</code><code>/java/jdk1</code><code>.7.0_79 </code><code>#JDK环境配置</code>
<code>export</code> <code>CLASSPATH=.:$JAVA_HOME</code><code>/jre/lib/rt</code><code>.jar:$JAVA_HOME</code><code>/lib/dt</code><code>.jar:$JAVA_HOME</code><code>/lib/tools</code><code>.jar</code>
<code>export</code> <code>PATH=$PATH:$JAVA_HOME</code><code>/bin</code>
<code>export</code> <code>MAVEN_HOME=</code><code>/usr/local/maven</code><code>#maven环境配置</code>
<code>export</code> <code>PATH=$PATH:$MAVEN_HOME</code><code>/bin</code>
<code>export</code> <code>JETTY_HOME=</code><code>/usr/local/jetty</code><code>#jetty环境配置</code>
<code>export</code> <code>PATH=$PATH:$JETTY_HOME</code><code>/bin</code>
# source /etc/profile #使变量生效
<code>[root@ljohn opt]</code><code># mvn -v #检查maven版本</code>
<code>Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T19:57:37+08:00)</code>
<code>Maven home: </code><code>/usr/local/maven</code>
<code>Java version: 1.7.0_79, vendor: Oracle Corporation</code>
<code>Java home: </code><code>/java/jdk1</code><code>.7.0_79</code><code>/jre</code>
<code>Default locale: en_US, platform encoding: UTF-8</code>
<code>OS name: </code><code>"linux"</code><code>, version: </code><code>"2.6.32-642.el6.x86_64"</code><code>, arch: </code><code>"amd64"</code><code>, family: </code><code>"unix"</code>
Jetty目录结构
下载Jetty应该是一个压缩包,只要把它解压到某个目录下就可以。解压后的目录结构及其包含的内容
目录文件名描述
license-eplv10-aslv20.html#Jetty license文件
README.txt#入门信息
VERSION.txt#release信息
bin/#运行Jetty的辅助shell脚本
demo-base/#演示demo
etc/#Jetty XML配置文件目录,主要包含各个模块需要的配置文件
lib/#运行Jetty需要的所有JAR包
logs/#log目录
modules/#模块定义目录,例如 server, http, https等等模块的定义文件
notice.html#License信息
resources/#额外的资源信息,例如log4j配置
start.d/#包含一系列全局ini文件,其中每个ini文件存储各种命令行参数
start.ini#全局命令行参数文件,该文件包含的内容将添加到命令行参数中,也就是 java -jar start.jar [arg...] 该命令的参数
start.jar#运行Jetty的Jar文件
webapps/#webapps文件夹
测试并启动jetty
<code>[root@ljohn ~]</code><code>#cd /usr/local/jetty/bin</code>
<code>[root@ljohn bin]</code><code># ./jetty.sh start </code>
<code>Starting Jetty: 2016-10-27 21:01:19.404:INFO::main: Logging initialized @734ms</code>
<code>2016-10-27 21:01:19.514:WARN:oejs.HomeBaseWarning:main: This instance of Jetty is not running from a separate {jetty.base} directory, this is not recommended. See documentation at http:</code><code>//www</code><code>.eclipse.org</code><code>/jetty/documentation/current/startup</code><code>.html</code>
<code>2016-10-27 21:01:20.125:INFO:oejs.Server:main: jetty-9.2.6.v20141205</code>
<code>2016-10-27 21:01:20.181:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [</code><code>file</code><code>:</code><code>/usr/local/jetty/webapps/</code><code>] at interval 1</code>
<code>2016-10-27 21:01:21.821:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@43655aac{/,</code><code>file</code><code>:</code><code>/usr/local/jetty/webapps/ROOT/</code><code>,AVAILABLE}{</code><code>/ROOT</code><code>}</code>
<code>2016-10-27 21:01:21.868:INFO:oejs.ServerConnector:main: Started ServerConnector@31e55839{HTTP</code><code>/1</code><code>.1}{0.0.0.0:8080}</code>
<code>2016-10-27 21:01:21.868:INFO:oejs.Server:main: Started @3198ms </code><code>#启动成功</code>
<code>OK Thu Oct 27 21:01:22 CST 2016</code>
Jetty已经成功运行了,监听8080端口,浏览器直接访问就Ok了 http://localhost:8080
你可能发现了, "Error 404 – Not Found",这是为啥呢?
因为Jetty默认会扫描$JETTY_HOME/webapps目录和部署该目录下的应用,但是目前webapps下面没有任何应用,所以返回404错误。
部署应用:
Jetty中部署应用非常简单,只要把war包或包含内容的目录放到webapps目录下面就ok了。
cp -r /usr/local/jetty/demo-base/webapps/ROOT /usr/local/jetty/webapps/ #ROOT目录下的文件为测试jetty的demo页面。
注意:webapps下面ROOT(大小写均可)目录部署的应用对应的URL为跟目录(/)也就是说可以直接通过http://localhost:8080/ 访问
如图4所示:
<a href="https://s2.51cto.com/wyfs02/M00/8E/5D/wKiom1i-eIKiLhw7AAQfWy-o09I601.png" target="_blank"></a>
或者自己写一个简单的页面
<code>[root@ljohn ~]</code><code># cd /usr/local/jetty/webapps/</code>
<code>[root@ljohn webapps]</code><code># mkdir test</code>
<code>[root@ljohn webapps]</code><code># cd test</code>
<code>[root@ljohn </code><code>test</code><code>]</code><code># vi test.jsp</code>
<code><html></code>
<code><body></code>
<code><h4>simple </code><code>test</code><code><</code><code>/h4</code><code>></code>
<code><%--</code><code>echo</code> <code>hello world--%></code>
<code><%@page language=</code><code>"java"</code><code>%></code>
<code><%=</code><code>"Hello World"</code><code>%></code>
<code><</code><code>/body</code><code>></code>
<code><</code><code>/html</code><code>></code>
<code>[root@ljohn ~]</code><code># cd /usr/local/jetty/</code>
<code>[root@ljohn jetty]</code><code># nohup java -jar start.jar & #拖至后台运行。</code>
<code>2016-10-27 21:11:20.290:INFO::main: Logging initialized @653ms</code>
<code>2016-10-27 21:11:20.356:WARN:oejs.HomeBaseWarning:main: This instance of Jetty is not running from a separate {jetty.base} directory, this is not recommended. See documentation at http:</code><code>//www</code><code>.eclipse.org</code><code>/jetty/documentation/current/startup</code><code>.html</code>
<code>2016-10-27 21:11:20.636:INFO:oejs.Server:main: jetty-9.2.6.v20141205</code>
<code>2016-10-27 21:11:20.665:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [</code><code>file</code><code>:</code><code>/usr/local/jetty/webapps/</code><code>] at interval 1</code>
<code>2016-10-27 21:11:21.544:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@166f10ef{</code><code>/test</code><code>,</code><code>file</code><code>:</code><code>/usr/local/jetty/webapps/test/</code><code>,AVAILABLE}{</code><code>/test</code><code>}</code>
<code>2016-10-27 21:11:21.571:INFO:oejs.ServerConnector:main: Started ServerConnector@3cb3600d{HTTP</code><code>/1</code><code>.1}{0.0.0.0:8080}</code>
<code>2016-10-27 21:11:21.571:INFO:oejs.Server:main: Started @1935ms</code>
或者进去bin目录执行命令./jetty.sh start
如下图:
<a href="https://s5.51cto.com/wyfs02/M02/8E/5B/wKioL1i-eIDhBg-7AAB91cZmiug605.png" target="_blank"></a>
至此完成了jetty的部署。期待下期jetty容器的配置
本文转自 ljohnmail 51CTO博客,原文链接:http://blog.51cto.com/ljohn/1904027,如需转载请自行联系原作者