`
xihuyu2000
  • 浏览: 32202 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用jetty作为嵌入式应用

阅读更多

 

引自: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代码  
  1. <?xml version="1.0" encoding="ISO-8859-1"?>    
  2. <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">    
  3.     
  4. <Configure class="org.mortbay.jetty.webapp.WebAppContext">    
  5.     
  6.     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->    
  7.     <!-- Required minimal context configuration : -->    
  8.     <!-- + contextPath -->    
  9.     <!-- + war OR resourceBase -->    
  10.     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->    
  11.     <Set name="contextPath">/web-demo</Set>    
  12.     <Set name="war">e:/workspace/web-demo/WebContent</Set>    
  13.     
  14.     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->    
  15.     <!-- Optional context configuration -->    
  16.     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->    
  17.     <Set name="extractWAR">false</Set>    
  18.     <Set name="copyWebDir">false</Set>    
  19.     <Set name="defaultsDescriptor">    
  20.         <SystemProperty name="jetty.home" default="." />/etc/webdefault.xml</Set>    
  21.     <!--    
  22.         <Set name="overrideDescriptor"><SystemProperty name="jetty.home"    
  23.         default="."/>/contexts/test.d/override-web.xml</Set>    
  24.     -->    
  25. </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 可以改为

 

Xml代码  
  1. <Set name="war"><SystemProperty name="jetty.home" default="."/>/../WebContent</Set>    

 

 注释${project_home}/jetty/etc/jetty.xml文件中的:

 

Xml代码  
  1. <!--    
  2. <Item>    
  3.     <New id="RequestLog" class="org.mortbay.jetty.handler.RequestLogHandler" />    
  4. </Item>    
  5. -->    
  6. <!--    
  7. <Call name="addLifeCycle">    
  8.     <Arg>    
  9.         <New class="org.mortbay.jetty.deployer.WebAppDeployer">    
  10.             <Set name="contexts"><Ref id="Contexts" /></Set>    
  11.             <Set name="webAppDir"><SystemProperty name="jetty.home" default="." />/webapps</Set>    
  12.             <Set name="parentLoaderPriority">false</Set>    
  13.             <Set name="extract">true</Set>    
  14.             <Set name="allowDuplicates">false</Set>    
  15.             <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="." />/etc/webdefault.xml</Set>    
  16.         </New>    
  17.     </Arg>    
  18. </Call>    
  19. -->    
  20. <!--    
  21. <Item>    
  22.     <New class="org.mortbay.jetty.security.HashUserRealm">    
  23.         <Set name="name">Test Realm</Set>    
  24.         <Set name="config"><SystemProperty name="jetty.home" default="." />/etc/realm.properties</Set>    
  25.         <Set name="refreshInterval">0</Set>    
  26.     </New>    
  27. </Item>    
  28. -->    
  29. <!--    
  30. <Ref id="RequestLog">    
  31.     <Set name="requestLog">    
  32.         <New id="RequestLogImpl" class="org.mortbay.jetty.NCSARequestLog">    
  33.             <Set name="filename"><SystemProperty name="jetty.logs" default="./logs" />/yyyy_mm_dd.request.log</Set>    
  34.             <Set name="filenameDateFormat">yyyy_MM_dd</Set>    
  35.             <Set name="retainDays">90</Set>    
  36.             <Set name="append">true</Set>    
  37.             <Set name="extended">false</Set>    
  38.             <Set name="logCookies">false</Set>    
  39.             <Set name="LogTimeZone"></
    分享到:
    评论

相关推荐

    jetty 嵌入式开发源码

    通过深入学习Jetty的嵌入式开发源码,开发者能够更好地理解其工作原理,从而更高效地利用Jetty构建高性能、可扩展的Web应用。同时,源码学习也有助于提升解决问题的能力,对于从事Java Web开发的工程师来说是一份...

    JAVA里使用Jetty作为轻量级嵌入式的Web容器

    3. **使用Jetty作为Web容器** - 首先,需要在项目中添加Jetty的依赖,可以通过Maven或Gradle来管理。 - 创建一个`Server`实例,并配置监听端口。 - 添加`Handler`,如`ServletContextHandler`,来处理HTTP请求。 ...

    Java如何使用Jetty实现嵌入式的Servlet容器

    在Java中,实现嵌入式的Servlet容器可以使用Jetty,Jetty是一个Java实现的开源的servlet容器,可以作为一个完整的Web服务器和Servlet容器,同时也可以嵌入在Java应用程序中。在Java程序中调用Jetty可以实现嵌入式的...

    jetty嵌入式Httpserver

    在使用Jetty作为嵌入式HTTP服务器时,我们首先需要了解它的基本概念和工作原理。Jetty的核心是基于事件驱动和非阻塞I/O模型,这使得它在处理大量并发连接时表现出色。通过使用NIO(非阻塞I/O)API,Jetty可以高效地...

    jetty嵌入式服务器实例大全

    Jetty可以作为WAR包的应用服务器,只需将WAR文件放入Jetty的webapps目录下,Jetty会自动解压并启动应用。通过`WarWebAppProvider`,你还可以在运行时动态部署或卸载WAR应用。 5. **多端口监听**: 对于需要在多个...

    jetty嵌入式服务.rar

    2. **Servlet容器**:Jetty作为Servlet规范的实现,可以托管Servlet和Filter,这是Java Web应用的标准接口。 3. **嵌入式模式**:在嵌入式模式下,你可以直接在代码中创建和配置Jetty服务器,避免了单独部署服务器的...

    jetty嵌入式实例

    Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它被广泛应用于各种规模的项目,特别是作为嵌入式服务器使用。嵌入式Jetty允许开发者直接在应用程序中启动和管理Web服务器,无需单独部署或运行独立的...

    Spring整合Jetty开发web应用的例程

    Jetty不依赖于特定的Java EE容器,这使得它非常适合于嵌入式环境,比如与Spring框架整合,直接在应用中启动服务器。 3. **整合过程**:整合Spring和Jetty通常涉及到以下步骤: - 引入依赖:在项目中添加Jetty和...

    基于jetty嵌入式容器的java性能分析工具,内嵌H2 database,以图表形式直观展.zip

    此外,使用Jetty作为嵌入式容器,意味着该工具可以直接与应用程序结合,而无需独立部署或配置服务器。这对于开发者来说是一种非常便捷的解决方案,尤其是在本地开发和调试环境中。Jetty的轻量级特性和低资源消耗也使...

    jetty嵌入Web编程多种实现方式案例

    Jetty作为开源项目,其核心设计理念是简洁、快速和可扩展。它支持HTTP、HTTPS、WebSocket等协议,并且可以处理静态文件、Servlet和JSP。由于Jetty是完全用Java编写,因此它能无缝融入Java应用程序,提供灵活的部署...

    应用服务器jetty8.0

    1. **Servlet容器**:Jetty作为Servlet容器,能够运行基于Servlet技术的Web应用。Servlet是Java用于处理HTTP请求的核心接口,而Jetty则为这些Servlet提供了一个运行环境。 2. **轻量级架构**:Jetty以其轻量级特性...

    jetty-5.1.12

    Jetty 是一个开源的servlet容器,... Jetty 可以作为嵌入式服务器使用,Jetty的运行速度较快,而且是轻量级的,可以在Java中可以从test case中控制其运行。从而可以使自动化测试不再依赖外部环境,顺利实现自动化测试。

    利用Jetty服务器开发web应用例程

    总结一下,Jetty作为一个强大的Servlet容器,提供了轻量级、快速和灵活的Web应用开发环境。通过学习如何配置和运行Jetty服务器,以及如何注册和管理Servlet,你可以为你的Java Web应用打下坚实的基础。不断探索Jetty...

    基于jetty嵌入式容器的java性能分析工具,内嵌H2 database,以图表形式直观展现应用当前性能数据详细文档+全部资料+高分项目+源码.zip

    基于jetty嵌入式容器的java性能分析工具,内嵌H2 database,以图表形式直观展现应用当前性能数据详细文档+全部资料+高分项目+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95...

    jetty嵌入项目实战

    本实战项目旨在帮助初学者快速掌握Jetty的嵌入式使用方法,通过实例化和配置Jetty服务器,实现Web应用的快速启动和运行。 1. **Jetty简介** - Jetty是一个开源的HTTP服务器和Servlet容器,它遵循Java Servlet和JSR...

    gradle的jetty插件使用例子

    在Java Web开发中,Jetty是一个轻量级、高性能的HTTP服务器和Servlet容器,它支持多种部署方式,包括作为嵌入式服务器使用。Gradle,作为现代的构建工具,提供了丰富的插件生态系统,其中包括Jetty插件,使得在开发...

    SpringBoot切换Tomcat容器,SpringBoot使用Jetty容器

    4. **运行与测试**:完成上述步骤后,重新构建并运行项目,Spring Boot将使用Jetty作为Web服务器运行。通过浏览器访问应用,确认是否正常运行。 接下来,我们讨论Jetty容器。Jetty同样是一款轻量级的HTTP服务器和...

    Jetty Demo

    此外,还会涉及如何使用Jetty的嵌入式模式,即直接在应用中包含Jetty服务器,而不是将其作为独立服务运行。 通过这个JettyDemo,你将对Jetty的使用有初步的认识,为进一步学习和使用Jetty打下基础。随着你对Jetty的...

    Java_嵌入式Jetty WebSocket示例.zip

    总结起来,Java中的Jetty WebSocket示例展示了如何利用Jetty作为嵌入式服务器,实现高效的WebSocket通信。这个压缩包提供的资源可以帮助开发者快速理解和实践WebSocket技术,为构建实时Web应用打下基础。

    jetty相关所有jar包

    2. **Servlet容器**: Jetty作为Servlet 3.1规范的实现者,可以托管Servlet应用。它提供了对Servlet生命周期的管理,包括加载、初始化、服务和销毁Servlet。 3. **WebSocket支持**: Jetty提供了一套完整的WebSocket ...

Global site tag (gtag.js) - Google Analytics