部署web应用
配置了部署模块的Jetty服务器实例能够在webapps目录下热部署web应用。在webapps目录下标准的War包和jetty的配置文件能够被热部署进服务器需要符合下述规则:
- example/目录会被自动部署,如果该目录下含有WEB-INF/子目录的话,会作为一个web应用,要不然作为一个静态内容目录。他的访问路径是/example(也就是说,http://localhost:8080/example/),除非你目录名叫ROOT(大小写敏感),这时的访问路径为/。如果目录名称以".d"结尾的话,该目录会被作为配置目录处理。
- WAR包被命名为example.war会被部署成访问路径为/example(也就是说,http://localhost:8080/example/)的web应用。如果WAR名字为ROOT(大小写敏感),这时的访问路径为/。如果example.war和example/同时存在,仅仅War包会被生效(因为同名的目录会被作为War包的解压缩目录覆盖)。
- 通过XML可以进行访问路径的配置,该XML文件必须包含上下文路径配置,如果同时存在和war包同名的xml文件,优先使用XML作为该应用的配置。
如果你有一个Web应用,你可以直接拷贝到webapps目录下进行热部署。
Jetty的Demo演示程序
在demo-base/webapps目录下包含以下可部署的和配置文件 :
ROOT/
-
这是一个静态内容目录,访问路径为/,里面包含有Jetty的Demo程序的欢迎页面。
test.xml
-
这是一个配置和部署test.war的web应用的配置文件,里面配置访问路径的配置和加载额外的配置文件路径,比如设置test.d目录。
test.war
-
这是一个被test.xml配置的一个web应用。
test.d
-
该目录包含额外的配置,被test.xml使用并且注入到test.war应用的配置中。
async-rest.war
-
一个eBay的REST风格的异步web应用,自动部署后的访问路径是/async-test。
test-jaas.war
-
使用JAAS安全验证框架的一个web应用程序。
test-jaas.xml
-
一个关于test-jaas.war的上下文配置的文件。额外的配置包含启动LoginService进行授权和认证。
test-jndi.war
-
展示使用JNDI的web应用Demo程序。
test-jndi.xml
-
配置test-jndi.war上下文的文件
. 额外的配置包含定义在命名空间被web应用引用的对象。 test-spec.war
-
该Demo程序展示使用注解,fragments, ServletContainerInitializers和其他Servlet3.0/3.1特性 。
test-spec.xml
-
配置test-spec.war上下文路径的配置文件。 额外的配置包括启动一些在命名空间中需要被引用的注解。
xref-proxy.war
-
一个使用透明的代理从Eclipse网站的jetty的src下的xref目录服务 。
example-moved.xml
- 展示怎样使用MovedContextHandler来重定向到另外一个路径的web应用Demo程序。
在Jetty中使用Maven
Jetty从Maven成立以后就一直存在于Maven的*仓库,这些年来就存在了几个不同的Maven坐标,当年Jetty在SourceForge和Codehaus社区时,使用的groupId是 org.mortbay.jetty
. 在Jetty7时加入Eclipse基金会后使用了新的groupId。POM如下所示:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-project</artifactId>
<version>${project.version}</version>
</dependency>