使用jetty配置 开发web应用
简单的配置文件,简单的启动脚本,而且在elipse或者其他ide中,进行调试,运行都很方便。
不想多说什么,让事实来说话吧。在开始之前,先下载jetty。目前最新的版本为6.1:
http://docs.codehaus.org/display/JETTY/Downloading+and+Installing#download
以前的版本文件是比较小的,现在的版本增加了很多东东,主要是很多例子应用,以及源码,经过删减只有,整个应用还是比较小的,大概也就10m多了。如果只是需要运行web应用,并且只是需要jsp 2.1规范的话,只有7m多了。以前4.0的时候只有2m多,现在也已经增加了那么多了,时代在进步,没有办法。
jetty主要的jar为jetty-6.1.1.jar,servlet-api-2.5-6.1.1.jar,jetty-util-6.1.1.jar。启动的jar 为start.jar。还有jsp规范的jar。jsp2.1,好像已经减了不少的jar了,只有4个文件core-3.1.1.jar,ant-1.6.5.jar,jsp-2.1.jar,jsp-api-2.1.jar。core是使用eclipse的jdt,进行jsp编译。
jetty的主要配置文件为etc/jetty.xml,当然你可以自己指定别的文件。在start.jar中有个start.config文件是默认的环境配置,以及指定默认的配置文件。可以手工替换。
启动jetty很简单,在命令行下面java -jar start.jar
如果需要指定start.config,使用java -DSTART=start.config -jar start.jart
配置web 应用也非常的简单:
更改jetty.xml就行了,增加web应用的方式包括,直接放置应用在webapps下面,或者配置以下的context
<New id="Mywork" class="org.mortbay.jetty.webapp.WebAppContext">
<Arg><Ref id="contexts"/></Arg>
<!-- 绝对路径,可以指定相对路径,增加 <SystemProperty name="jetty.home" default="."/> 就行-->
<Arg>D:\\project\\work\\m2project\\esoft\\esoft-mywork-jsf\\src\\main\\webapp</Arg>
<Arg>/mywork</Arg>
<Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
<Set name="virtualHosts">
<Array type="java.lang.String">
<Item>localhost</Item>
</Array>
</Set>
</New>
要想改变原先的webapps主应用,改变下面的配置
<Call class="org.mortbay.jetty.webapp.WebAppContext" name="addWebApplications">
<Arg><Ref id="contexts"/></Arg>
<Arg><SystemProperty name="jetty.home" default="."/>/webapps</Arg>
<Arg><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Arg>
<Arg type="boolean">True</Arg> <!-- extract -->
<Arg type="boolean">False</Arg> <!-- parent priority class loading -->
</Call>
默认的web.xml配置文件为webdefault.xml
如果想配置相应的web参数,可以更改其应用。
默认的端口为8080,如果想修改,更改:jetty.port属性
<Call name="addConnector">
<Arg>
<New class="org.mortbay.jetty.nio.SelectChannelConnector">
<Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
<Set name="maxIdleTime">30000</Set>
<Set name="Acceptors">2</Set>
<Set name="confidentialPort">8443</Set>
</New>
</Arg>
</Call>