谷歌服务器——为什么选择Jetty?
2011-07-20 15:05 java ee spring 阅读(288) 评论(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的绑定功能之一。
肯定知道-精品推荐:
3、解放战争并非是小米加步枪,太原攻坚战弹药消耗堪比淮海战役
4、中国12架轰炸机一次摧毁日军飞机160架!
5、flex 分页 组件 源码
6、韩国网速2012年即将突破1000M/秒,中国网速有多快?
7、java 操作dos命令-执行dos
8、hibernate超长字符串 用clob类型添加到数据库
9、越南为什么会突然赴京请罪?
10、惨烈的密支那会战:当年民族英雄的灵魂是否已经安息?
11、免费刷流量-软件
文章来源:http://yijianfengvip.blog.163.com/blog/static/1752734322011620364842/