引自:http://www.iteye.com/topic/66321
看到开源项目发布的时候都带一个 jsp 容器(jetty)。拿来做 demo、开发、调试的服务器还是很不错的。今天就小试下,主要把它运行起来。
第一步下载:http://dist.codehaus.org/jetty/jetty-6.1.14/jetty-6.1.14.zip 是目前最新的稳定版。解压到如E:\jetty-6.1.14,其中比较重要的目录是:etc、contexts、webapps。个人认为可以类比tomcat的conf、conf\Catalina\localhost、webapps目录。contexts是热部署用的。
试运行下,可以把一个简单的web项目到到webapps目录下,或是*.war,如:web-demo(或web-demo.war)放到webapps目录下。
E:\jetty-6.1.14>java -jar start.jar
2009-01-13 15:34:38.937::INFO: Logging to STDERR via org.mortbay.log.StdErrLog
2009-01-13 15:34:39.265::INFO: jetty-6.1.14
2009-01-13 15:34:39.421::INFO: Deploy E:\jetty-6.1.14\contexts\javadoc.xml -> org.mortbay.jetty.handler.ContextHandler@15cda3f{/javadoc,file:/E:/jetty-6.1.14/javadoc/}
...
2009-01-13 15:35:01.828::INFO: Opened E:\jetty-6.1.14\logs\2009_01_13.request.log
2009-01-13 15:35:01.953::INFO: Started SelectChannelConnector@127.0.0.1:8080
打开:http://localhost:8080/web-demo ,恩有结果了。
如果不把web-demo放到webapps目录下也可,在contexts目录下建立一个文件告诉jetty就行了。可以在contexts目录下复制test.xml为web-demo.xml,然后修改如下:
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
-
- <Configure class="org.mortbay.jetty.webapp.WebAppContext">
-
-
-
-
-
-
- <Set name="contextPath">/web-demo</Set>
- <Set name="war">e:/workspace/web-demo/WebContent</Set>
-
-
-
-
- <Set name="extractWAR">false</Set>
- <Set name="copyWebDir">false</Set>
- <Set name="defaultsDescriptor">
- <SystemProperty name="jetty.home" default="." />/etc/webdefault.xml</Set>
- <!--
- <Set name="overrideDescriptor"><SystemProperty name="jetty.home"
- default="."/>/contexts/test.d/override-web.xml</Set>
- -->
- </Configure>
war可以设置成绝对路径。然后再重启jetty试试看。好了, 对jetty的初步认识到这里。
下面再来看下,怎么把它放到项目中。现我有一示例项目 e:/workspace/web-demo(称为project_home),里面的Web根目录是WebContent。
在project_home建一个jetty目录,子目录如:contexts、etc、lib。
把${jetty_home}/etc目录下的jetty.xml、webdefault.xml文件复制到${project_home}/jetty/etc目录中。
把${jetty_home}/lib/jsp-2.1目录复制到${project_home}/jetty/lib目录下(如果不复制jsp-2.1或jsp-2.0也可以正常启动,只是不能解析jsp,打开主页时提示 JSP not support)。
同样把jetty-6.1.14.jar、jetty-util-6.1.14.jar、servlet-api-2.5-6.1.14.jar复制到${project_home}/jetty/lib目录下。
把${jetty_home}/start.jar复制到${project_home}/jetty目录下。
接下来在${project_home}/jetty/contexts目录下加一个文件。可以是上面给出的web-demo.xml。不过war 可以改为
- <Set name="war"><SystemProperty name="jetty.home" default="."/>/../WebContent</Set>
注释${project_home}/jetty/etc/jetty.xml文件中的:
- <!--
- <Item>
- <New id="RequestLog" class="org.mortbay.jetty.handler.RequestLogHandler" />
- </Item>
- -->
- <!--
- <Call name="addLifeCycle">
- <Arg>
- <New class="org.mortbay.jetty.deployer.WebAppDeployer">
- <Set name="contexts"><Ref id="Contexts" /></Set>
- <Set name="webAppDir"><SystemProperty name="jetty.home" default="." />/webapps</Set>
- <Set name="parentLoaderPriority">false</Set>
- <Set name="extract">true</Set>
- <Set name="allowDuplicates">false</Set>
- <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="." />/etc/webdefault.xml</Set>
- </New>
- </Arg>
- </Call>
- -->
- <!--
- <Item>
- <New class="org.mortbay.jetty.security.HashUserRealm">
- <Set name="name">Test Realm</Set>
- <Set name="config"><SystemProperty name="jetty.home" default="." />/etc/realm.properties</Set>
- <Set name="refreshInterval">0</Set>
- </New>
- </Item>
- -->
- <!--
- <Ref id="RequestLog">
- <Set name="requestLog">
- <New id="RequestLogImpl" class="org.mortbay.jetty.NCSARequestLog">
- <Set name="filename"><SystemProperty name="jetty.logs" default="./logs" />/yyyy_mm_dd.request.log</Set>
- <Set name="filenameDateFormat">yyyy_MM_dd</Set>
- <Set name="retainDays">90</Set>
- <Set name="append">true</Set>
- <Set name="extended">false</Set>
- <Set name="logCookies">false</Set>
- <Set name="LogTimeZone"></
分享到:
相关推荐
通过深入学习Jetty的嵌入式开发源码,开发者能够更好地理解其工作原理,从而更高效地利用Jetty构建高性能、可扩展的Web应用。同时,源码学习也有助于提升解决问题的能力,对于从事Java Web开发的工程师来说是一份...
3. **使用Jetty作为Web容器** - 首先,需要在项目中添加Jetty的依赖,可以通过Maven或Gradle来管理。 - 创建一个`Server`实例,并配置监听端口。 - 添加`Handler`,如`ServletContextHandler`,来处理HTTP请求。 ...
在Java中,实现嵌入式的Servlet容器可以使用Jetty,Jetty是一个Java实现的开源的servlet容器,可以作为一个完整的Web服务器和Servlet容器,同时也可以嵌入在Java应用程序中。在Java程序中调用Jetty可以实现嵌入式的...
在使用Jetty作为嵌入式HTTP服务器时,我们首先需要了解它的基本概念和工作原理。Jetty的核心是基于事件驱动和非阻塞I/O模型,这使得它在处理大量并发连接时表现出色。通过使用NIO(非阻塞I/O)API,Jetty可以高效地...
Jetty可以作为WAR包的应用服务器,只需将WAR文件放入Jetty的webapps目录下,Jetty会自动解压并启动应用。通过`WarWebAppProvider`,你还可以在运行时动态部署或卸载WAR应用。 5. **多端口监听**: 对于需要在多个...
2. **Servlet容器**:Jetty作为Servlet规范的实现,可以托管Servlet和Filter,这是Java Web应用的标准接口。 3. **嵌入式模式**:在嵌入式模式下,你可以直接在代码中创建和配置Jetty服务器,避免了单独部署服务器的...
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它被广泛应用于各种规模的项目,特别是作为嵌入式服务器使用。嵌入式Jetty允许开发者直接在应用程序中启动和管理Web服务器,无需单独部署或运行独立的...
Jetty不依赖于特定的Java EE容器,这使得它非常适合于嵌入式环境,比如与Spring框架整合,直接在应用中启动服务器。 3. **整合过程**:整合Spring和Jetty通常涉及到以下步骤: - 引入依赖:在项目中添加Jetty和...
此外,使用Jetty作为嵌入式容器,意味着该工具可以直接与应用程序结合,而无需独立部署或配置服务器。这对于开发者来说是一种非常便捷的解决方案,尤其是在本地开发和调试环境中。Jetty的轻量级特性和低资源消耗也使...
Jetty作为开源项目,其核心设计理念是简洁、快速和可扩展。它支持HTTP、HTTPS、WebSocket等协议,并且可以处理静态文件、Servlet和JSP。由于Jetty是完全用Java编写,因此它能无缝融入Java应用程序,提供灵活的部署...
1. **Servlet容器**:Jetty作为Servlet容器,能够运行基于Servlet技术的Web应用。Servlet是Java用于处理HTTP请求的核心接口,而Jetty则为这些Servlet提供了一个运行环境。 2. **轻量级架构**:Jetty以其轻量级特性...
Jetty 是一个开源的servlet容器,... Jetty 可以作为嵌入式服务器使用,Jetty的运行速度较快,而且是轻量级的,可以在Java中可以从test case中控制其运行。从而可以使自动化测试不再依赖外部环境,顺利实现自动化测试。
总结一下,Jetty作为一个强大的Servlet容器,提供了轻量级、快速和灵活的Web应用开发环境。通过学习如何配置和运行Jetty服务器,以及如何注册和管理Servlet,你可以为你的Java Web应用打下坚实的基础。不断探索Jetty...
基于jetty嵌入式容器的java性能分析工具,内嵌H2 database,以图表形式直观展现应用当前性能数据详细文档+全部资料+高分项目+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95...
本实战项目旨在帮助初学者快速掌握Jetty的嵌入式使用方法,通过实例化和配置Jetty服务器,实现Web应用的快速启动和运行。 1. **Jetty简介** - Jetty是一个开源的HTTP服务器和Servlet容器,它遵循Java Servlet和JSR...
在Java Web开发中,Jetty是一个轻量级、高性能的HTTP服务器和Servlet容器,它支持多种部署方式,包括作为嵌入式服务器使用。Gradle,作为现代的构建工具,提供了丰富的插件生态系统,其中包括Jetty插件,使得在开发...
4. **运行与测试**:完成上述步骤后,重新构建并运行项目,Spring Boot将使用Jetty作为Web服务器运行。通过浏览器访问应用,确认是否正常运行。 接下来,我们讨论Jetty容器。Jetty同样是一款轻量级的HTTP服务器和...
此外,还会涉及如何使用Jetty的嵌入式模式,即直接在应用中包含Jetty服务器,而不是将其作为独立服务运行。 通过这个JettyDemo,你将对Jetty的使用有初步的认识,为进一步学习和使用Jetty打下基础。随着你对Jetty的...
总结起来,Java中的Jetty WebSocket示例展示了如何利用Jetty作为嵌入式服务器,实现高效的WebSocket通信。这个压缩包提供的资源可以帮助开发者快速理解和实践WebSocket技术,为构建实时Web应用打下基础。
2. **Servlet容器**: Jetty作为Servlet 3.1规范的实现者,可以托管Servlet应用。它提供了对Servlet生命周期的管理,包括加载、初始化、服务和销毁Servlet。 3. **WebSocket支持**: Jetty提供了一套完整的WebSocket ...