Jetty学习一:基本功能介绍

Jetty是一个开源项目,提供了HTTP Server,HTTP Client和Javax.servlet容器,这里(http://www.eclipse.org/jetty/)是它的官方网站,这里对它做一个基本的介绍,包括基本目录、启动方式和应用部署。

Jetty目录结构

下面是Jetty 9.10的发布版本包含的文件和文件夹,及其作用。

license-eplv10-aslv20.html
			Jetty的License文件
README.txt
			Jetty的基本信息和命令
VERSION.txt
			发布版本
bin/
			Jetty运行在Unix系统上的shell脚本
demo-base/
			一个Jetty的base文件夹,用于运行演示webapps的Jetty server
etc/
			Jetty的XML配置文件文件夹
lib/
			Jetty依赖的JAR文件
logs/
			请求日志
modules/
			module定义文件夹
notice.html
			License信息和免责条款
resources/
			附属资源的配置文件
start.d/
			*.ini文件,这些文件包含一些配置文件,在命令行中会被作为参数添加上去(看start.ini)
start.ini
			包含添加到实际的命令行中的参数(modules,properties和XML配置文件)
start.jar
			调用Jetty的Jar
webapps/
			默认的Jetty放置webapps的文件夹

这里做一个基本的了解,后面将详细讲述。

启动Jetty

Jetty的默认端口是8080,使用下面的命令启动:

	>cd $JETTY_HOME
	>java -jar start.jar

然后你能在浏览器中访问:http://localhost:8080

Demo Base

在9.1.0之后,Jetty不再部署任何demo web应用,因此要看演示,你需要从demo-base文件夹启动Jetty,如下:

	>cd $JETTY_HOME/demo-base/
	>java -jar ../start.jar

打开浏览器,输入http://localhost:8080,你将看到一个欢迎页面和几个demo/test web应用。

创建新Jetty Base

上面描述的demo-base文件夹是一个jetty.base机制的一个例子,该机制在Jetty 9.1增加。Jetty base允许服务端实例的配置和web应用被分别地存储,以保证升级的影响降到最小。Jetty的默认配置基于两个属性:

jetty.home:定义jetty分发的位置,包括他的libs,默认modules和默认XML文件(例如start.jar,lib,等等)

jetty.base:定义一个jetty服务器的特定实例的位置,包括他的配置,logs和web应用(例如start.ini,start.d,logs和webapps)

jetty.home和jetty.base可以直接在命令行中指定,也可以通过环境变量使用,例如:

	>cd $JETTY_BASE
	>java -jar $JETTY_HOME/start.jar

这个跟随的命令创建了一个新的base文件夹,并激活了一个HTTP连接器和web应用部署者:

	>mkdir /tmp/mybase
	>cd /tmp/mybase
	>java -jar $JETTY_HOME/start.jar
	WARNING: Nothing to start, exiting ...

	Usage: java -jar start.jar [options] [properties] [configs]
       java -jar start.jar --help  # for more information
	>java -jar $JETTY_HOME/start.jar --add-to-startd=http,deploy
	http            initialised in ${jetty.base}/start.d/http.ini (created)
	server          initialised in ${jetty.base}/start.d/server.ini (created)
	deploy          initialised in ${jetty.base}/start.d/deploy.ini (created)
	MKDIR: ${jetty.base}/webapps
	server          initialised in ${jetty.base}/start.d/server.ini
	>java -jar $JETTY_HOME/start.jar
	2013-09-06 14:59:32.542:INFO:oejs.Server:main: jetty-9.1.0-SNAPSHOT
	2013-09-06 14:59:32.572:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/tmp/mybase/webapps/] at interval 1
	2013-09-06 14:59:32.602:INFO:oejs.ServerConnector:main: Started [email protected]{HTTP/1.1}{0.0.0.0:8080}

	[...]

改变Jetty端口

你可以通过在命令行中设置jetty.port改变端口:

	>cd $JETTY_HOME/demo-base
	>java -jar start.jar jetty.port=8081

你可以将属性值添加到start.ini文件或者start.d/*.ini文件中。默认情况下,jetty定义jetty.port属性在start.d/http.ini文件中,可以被修改。

使用HTTPS启动

使用下面的方式可以激活https模块:

	>java -jar start.jar --add-to-startd=https
	https           initialised in ${jetty.home}/start.d/https.ini (created)
	ssl             initialised in ${jetty.home}/start.d/ssl.ini (created)
	server          enabled in     ${jetty.home}/start.ini
	resources       enabled in     ${jetty.home}/start.ini
	ext             enabled in     ${jetty.home}/start.ini
	>java -jar start.jar
	2013-09-06 13:52:43.326:INFO:oejs.Server:main: jetty-9.1.0
	...

--add-to-startd执行如下操作:

1)创建https.ini文件激活和配置https连接器模块。https模块增加etc/jetty-https.xml文件到命令行中。

2)创建start.d/ssl.ini文件激活和配置SSL keystore。ssl模块增加etc/jetty-ssl.xml文件到命令行。

3)检查etc/keystore文件是否存在,如果不存在,则下载一个示范keystore文件。

更多的start.jar选项

start.jar的工作是解释命令行,start.ini和start.d是提供Java classpath和属性和配置文件列表。start.jar有许多的选项,你可以通过下面的命令看到:

	>java -jar start.jar --help

部署web应用

web应用部署在webapps文件夹,支持热部署,支持标准的WAR文件和Jetty配置文件,并遵循下面的约定:

1)如果文件夹example/被部署,且包含一个WEB-INF/子文件夹,则它作为标准web应用部署,否则它作为静态目录上下文部署。上下文路径是/example(即:http://localhost:8080/example/),但如果文件夹名是ROOT(大小写敏感),则上下文路径是/。如果文件夹名以“.d”结束,则被忽略(但可以通过直接配置来使用)。

2)文件example.war被作为标准web应用部署,上下文路径为/example(即:http://localhost:8080/example/)。如果文件名是ROOT(大小写敏感),则上下文路径为/。如果example.war和example/同时存在,则WAR被部署。

3)一个XML文件example.xml被部署,配置通过XML文件定义,配置必须包含上下文路径。如果example.xml和example.war存在,仅XML被部署。

如果你有一个标准的web应用,你能通过拷贝它到webapps文件夹来热部署它到Jetty。

Jetty学习一:基本功能介绍

时间: 2024-11-05 12:32:50

Jetty学习一:基本功能介绍的相关文章

淘宝API学习之道:简单介绍淘宝API功能接口作用

前一阵子按照上级指示,根据淘宝API开发符合自已应用的系统,比如批量上传,批量修改名称,价格等功能什么的,在此就将我的开发历程写一写,为自己前段时间的工作做个总结. 淘宝开发平台(http://www.taobao.com/theme/tao_source/#prev),向第三方开发者提供API接口和相关开发环境的平台,使开发者可以开发属于自已的系统应用于淘宝店铺和阿里上,同时,运用SAAS模式,开发者开发的系统也可以在该平台上进行销售. 为进行开发做的准备,得在开发同盟网站注册帐号(http:

EXCEL基础内容学习笔记(二)Excel文档的基本组成与功能介绍

一.基本组成 (一)工作簿.工作表与单元格 (1)工作簿:一个Excel文档即为一个工作簿. (2)工作表:工作簿中的每个表. (3)单元格:打开Excel文档,在工作表中单击,出现的加粗四边形即为单元格.单元格由行和列组成,命名时由行和列说明,称为单元格名称或地址. 一个工作簿中有若干个工作表,每个工作表有许多单元格组成. 二.功能介绍 (1)标题栏:Excel文档最上端. (2)选项卡 (3)工作区:每一个打开的选项卡都含有若干工作区. (4)名称框:所选择的单元格的名字. (5)编辑栏:可

带你走近AngularJS - 基本功能介绍

AngularJS是Google推出的一款Web应用开发框架.它提供了一系列兼容性良好并且可扩展的服务,包括数据绑定.DOM操作.MVC设计模式和模块加载等.本文专注于AngularJS 指令的使用,在我们进入主题之前,我们将快速浏览AngularJS的基本用法. AngularJS 不仅仅是一个类库,而是提供了一个完整的框架.它避免了您和多个类库交互,需要熟悉多套接口的繁琐工作.它由Google Chrome的开发人员设计,引领着下一代Web应用开发.也许我们5年或10年后不会使用Angula

Joomla软件功能介绍与开源程序大比拼Joomla,wordpress,Drupal哪个好?

Joomla 软件功能介绍:    Joomla!是一套在国外相当知名的内容管理系统 (Content Management System, CMS),它属于Portal(企业入口网站)类型,顾名思义,就是比较适合作为商业类型的网站程序.一般人对这类型的内容管理系统可能会有以下的别名来称呼: ■ 架站程序(或软件) ■ 快速架站程序(或软件) ■ 整站程序 Joomla!是使用PHP语言加上MySQL数据库所开发的软件系统,可以在Linux. Windows.MacOSX等各种不同的平台上执行.

Linux系统目录结构说明及功能介绍

Hello,大家晚上好!今天将给大家分享Linux系统中目录结构及各个目录的功能:本次的内容大纲如下: 1.Windows文件系统和Linux文件系统区别 2.Linux系统中目录结构说明及各个目录功能介绍 3.根文件系统子目录功能简单介绍 4.内容总结 一.Windows文件夹结构和Linux文件夹结构区别 先给大家上两张图片,如下:  图一.Windows系统截图 图二.Linux系统截图 第一副图片是在我们经常使用的Windows系统下截取而来:我们已经非常习惯C盘.D盘--的观念,对于第

Oracle EBS WMS功能介绍(二)

(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 出货物流逻辑主要包括 1.      打包,可以进行多层嵌套式的打包,并通知用户为订单所做的特殊打包方法.打包可以在拣货时做,也可以作为一个独立的操作来做. 2.      为行程进行码头预约,可以使仓库经理计划出库运输公司的预约,码头门的可用性和仓库内的待装区的使用. 3.      拣货方法,为不同订单的拣货需要选择不同的拣货方法. 4.      管理拣货,可以使订单基于移动手持应用拣

.NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍

Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器学习算法以及提供计算机视频.音频.信号处理以及统计应用相关的解决方案.该项目使用C#语言编写,项目主页:http://accord-framework.net/ 说明:该文章只是一个基本介绍,主要内容是翻译的官方文档和介绍,部分英文表述个人能力有限,不太熟悉,所以直接照搬原文,有比较确切的知道中文名

Oracle EBS WMS功能介绍(一)

(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) Oracle WMS是仓储管理,是Oracle 高级供应链和制造解决方案中的一个组件,不完全等同于库存(Oracle Inventory),因为它支持高度自动化的手持扫描枪和物料处理系统:且极大的扩展了现有EBS的功能,并提供了包括仓存资源管理,仓储配置,生产率,性能分析,任务计划,高级拣货方法和附加值服务.所以WMS中的大部分操作是通过扫描枪来进行的. 要使用WMS的一个重要前提就是必须使

Jetty学习六:配置连接器

连接器配置概览 连接器用于接收网络连接,配置一个连接器需要配置: 1)连接器的网络参数(例如:端口): 2)连接器使用的服务(例如:executors,schedulers): 3)为接收连接而初始化和配置协议的连接工厂. Jetty主要使用的连接器类型为ServerConnector. 标准Jetty发布使用下面的Jetty XML文件创建和配置连接器: 1)jetty-http.xml 初始化一个ServerConnector,用于接收HTTP连接(可以被升级到WebSocket连接). 2