代码改变世界

谷歌服务器——为什么选择Jetty?

2011-07-20 15:05  javaspring  阅读(212)  评论(0编辑  收藏  举报

  google服务器为什么选选择Jetty?

  因为:Jetty是Java领域另一个出色的Web服务器,它同样也是开源的。与tomcat不同的是它可作为一个嵌入式服务器。也就是说,如果我们在应用中加入jetty的核心jar文件,应用即可对外提供http服务。它同时也是平台无关的java web服务器,既可以在Windos平台上运行,也可以在Linux平台上运行。

  大家可以登录http://jetty.codehaus.org/jetty/站点下载Jetty的最新版本。下载的zip文件也是与平台无关的压缩包,不管是windows还是Linux都可使用。

  将下载的安装zip包,解压缩到任意的路径下。运行Jetty需要使用如下命令:

cd D:/jetty
D:
java -jar start.jar

  建议将上面的命令写成脚本,在windows下可写成批处理命令,在linux下可写成shell脚本。每次运行执行该文件就可以了。

  运行成功后,启动浏览器,然后输入http://localhost:8080/回车,看看是否成功。如果不成功首先要保证端口8080是否被占用,真的被占用那就配置一下Jetty的端口,下面会介绍的。

 

1.Jetty的基本配置

  主要介绍Jetty的端口设置,以及如何部署Web应用,Jetty是一个嵌入式的Http服务器,因此配置方式还是与tomcat有一些差异的:

  Jetty的配置文件都会在etc的目录下,熟悉linux的目录的人应该很眼熟,呵呵。该目录下有如下几类配置文件:

  1.jetty.xml:该文件是Jetty的默认配置文件,Jetty的端口号也是在这个文件里设置的。

  2.jetty-xxx.xml:该文件是为了给Jetty增加扩展应用所用的配置文件。

  3.webdefault.xml:该文件是Web应用的默认配置文件,用于控制Jetty容器里所有Web应用的通用属性,该文件不可以修改。

 

  Jetty服务器提供HTTP服务的主类是org.mortbay.jetty.Server,所以etc路径下的文件都需要为org.mortbay.jetty.Server配置属性。如下所示:

 

<Configure id="Server" class="org.eclipse.jetty.server.Server">

 <!-- =========================================================== -->
    <!-- Set connectors                                              -->
    <!-- =========================================================== -->

    <Call name="addConnector">
      <Arg>
          <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
            <Set name="host"><Property name="jetty.host" /></Set>
            <Set name="port"><Property name="jetty.port" default="8080"/></Set>
            <Set name="maxIdleTime">300000</Set>
            <Set name="Acceptors">2</Set>
            <Set name="statsOn">false</Set>
            <Set name="confidentialPort">8443</Set>
     <Set name="lowResourcesConnections">20000</Set>
     <Set name="lowResourcesMaxIdleTime">5000</Set>
          </New>
      </Arg>
    </Call>

 

Jetty的配置文件非常巧妙,它通过配置文件来新建对象(New元素),调用对象的方法(Call元素),设置属性(Set元素控制)。实际上,Jetty底层将会根据配置文件中的信息,使用反射来创建对象,设置属性和调用方法。由此可见,如果我们需要在应用程序中嵌入Jetty服务器,只需要创建org.mortbay.jetty.Server对象,并调用一些列方法即可。

 

2.部署Web应用

  Jetty同样也有两种方式部署Web应用:

  1)自动部署:将Web应用复制到Jetty的webapps的路径下,Jetty就会吧该Web应用自动部署到Jetty服务器中。

  2)利用配置文件部署:新增配置文件来部署Web应用,这种方式无需将web应用放置到webapps路径下。

  自动部署就不多说了,利用配置文件部署,既是进入Contexts目录,该目录下的所有文件都会被系统自动加载,并且根据这些配置文件来部署应用。该路径下默认有两个文件:

  1)javadoc.xml:负责部署java的API应用;

  2)test.xml:负责部署jetty的实例应用。

  复制test.xml文件,将文件名改为项目名称。并对复制文件进行修改:

 

 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <!-- Required minimal context configuration :                        -->
  <!--  + contextPath                                                  -->
  <!--  + war OR resourceBase                                          -->
  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <Set name="contextPath">/</Set>
  <Set name="war"><SystemProperty name="jetty.home" default="."/>/new</Set>

 

  上面的两行分别制定了Web应用的虚拟路径和文档路径,增加了该配置文件以后,jetty启动时将会自动把new路径下的web应用部署在服务器中。如果要删除该web应用就直接删除该配置文件即可。

 

3.配置JNDI绑定

Jetty同样可以整合DBCP,C3P0等数据源的实现,想外界提供容器管理的数据源。实际上,对外界提供容器管理的数据源,只是Jetty的JNDI的绑定功能之一。

 

 

 

肯定知道-精品推荐:

1、商品发布平台-发布流程-文档下载

2、flex 分页 组件 源码

3、解放战争并非是小米加步枪,太原攻坚战弹药消耗堪比淮海战役
        4、中国12架轰炸机一次摧毁日军飞机160架!
        5、flex 分页 组件 源码
        6、韩国网速2012年即将突破1000M/秒,中国网速有多快?
        7、java 操作dos命令-执行dos
        8、hibernate超长字符串 用clob类型添加到数据库
        9、越南为什么会突然赴京请罪?
       10、惨烈的密支那会战:当年民族英雄的灵魂是否已经安息?

11、免费刷流量-软件

12、淘宝热卖商品-特价商品-导购平台

13、特价商品发布平台-下载频道

 

文章来源:http://yijianfengvip.blog.163.com/blog/static/1752734322011620364842/