设为首页 收藏本站
云服务器等爆品抢先购,低至4.2元/月
查看: 834|回复: 0

[经验分享] Jetty 6.1.5的配置

[复制链接]

尚未签到

发表于 2017-2-26 12:41:21 | 显示全部楼层 |阅读模式
       Jetty以其高效、小巧、可嵌入式等优点深得人心,让我一看就喜欢上了。尤其是启动速度Tomcat 6简直望尘莫及,于是卸载了Tomcat安装了Jetty。大家有兴趣也可以比较一下。
       现在Jetty最新版本是6.1.5,目前还没有可用的Eclipse插件,但我们可以自己搞定。
        打开Eclipse在Run中新建一个Java Application,Project就用自己的web项目,MainClass填上org.mortbay.xml.XmlConfiguration,然后打开Arguments,在Program arguments中填上etc/jetty.xml当然这个配置文件自己可以改的,具体可以看下文介绍。现在已经配置好了,只需要运行/调试这个Application就可以相应的运行/调试自己的web项目。
       打开jetty安装目录下的etc/jetty.xml文件,会发现这个配置文件有点似曾相识。最外层节点是Configure,它定义了一个Server对象,这就是我们的Jetty服务器了。
      下面的代码定义了一个线程池,并将其提供给Server使用。
xml 代码
 

  • <Set name="ThreadPool">  
  •   <New class="org.mortbay.thread.BoundedThreadPool">  
  •      <Set name="minThreads">10</Set>  
  •      <Set name="maxThreads">250</Set>  
  •      <Set name="lowThreads">25</Set>  
  •   </New>  
  • </Set>  


       <Set>标签用来设置属性,类似spring中的<property>标签。内嵌<New>标签初始化一个新实例,并将引用赋值给Server的threadPool属性。对比如下Spring代码:xml 代码
 

  • <property name="threadPool">    
  •    <bean class="org.mortbay.thread.BoundedThreadPool">    
  •     <property name="minThreads" value="10" />    
  •     <property name="maxThreads" value="250" />    
  •     <property name="lowThreads" value="25" />    
  •   </bean>    
  • </property>    

往下的代码有一个<Call  name="addConnector">标签,这是反射调用addConnector方法,<Arg>标签定义了方法使用的参数。<Array type="org.mortbay.jetty.Handler">标签定义了一个org.mortbay.jetty.Handler数组,<Item>标签则定义了数组中的每一项。<Ref>标签则引用一个已经定义的实例对象。很简单吧,这种IOC方式和spring异曲同工。
        下面来重点介绍一下有关Web项目的配置。
       <New id="Contexts" class="org.mortbay.jetty.handler.ContextHandlerCollection"/>这段代码定义了一个上下文处理器的集合和下文的
xml 代码
 

  • <Call name="addLifeCycle">  
  •   <Arg>  
  •     <New class="org.mortbay.jetty.deployer.ContextDeployer">  
  •       <Set name="contexts"><Ref id="Contexts"/></Set>  
  •       <Set name="configurationDir"><SystemProperty name="jetty.home" default="."/>/contexts</Set>  
  •       <Set name="scanInterval">1</Set>  
  •     </New>  
  •   </Arg>  
  • </Call>  

配套使用,目的就是不断扫描$jetty.home/context目录下的xml配置文件,因此我们可以把自己的web应用的上下文配置放到这个目录下,就可以自动部署web应用。
        另外一段代码扫描$jetty.home//webapps下的目录和war文件,并自动部署之: xml 代码
 

  • <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>  

看完上面的我们基本就可以写自己的配置文件了,由于采用Eclipse启动Jetty,所以/contexts和/webapps目录对我来说没有用,干掉。另外添加自己的Handler来处理web应用。我定义的启动wicket的jetty-wicket.xml代码如下:
xml 代码
 

  • <Set name="handler">  
  •   <New id="Handlers" class="org.mortbay.jetty.handler.HandlerCollection">  
  •     <Set name="handlers">  
  •       <Array type="org.mortbay.jetty.Handler">  
  •         <Item>  
  •           <New id="RequestLog" class="org.mortbay.jetty.handler.RequestLogHandler"/>  
  •         </Item>  
  •         <Item>  
  •       <New class="org.mortbay.jetty.webapp.WebAppContext">  
  •         <Set name="contextPath">/</Set>  
  •         <Set name="resourceBase">d:/Workspace/wanged_wicket_app/web/</Set>  
  •         <Call name="addServlet">  
  •           <Arg>org.mortbay.jetty.servlet.DefaultServlet</Arg>  
  •           <Arg>/</Arg>  
  •         </Call>  
  •       </New>  
  •     </Item>  
  •       </Array>  
  •     </Set>  
  •   </New>  
  • </Set>   

这样一来,启动时就不需要加载多余的web应用了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-347467-1-1.html 上篇帖子: jetty 手动 加载spring mvc demo 下篇帖子: 使用Intell IDEA Debug jetty web应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表