之前文章提到过用MAVEN2启动JETTY,这里介绍一种直接从ECLIPSE中启动的办法。
适用于6.1.3以上,包括6.1.5的JETTY。
它主要是利用了JDK的代码自动更换性能(code hot replace),可以不用重启JETTY就调试、更换资源文件。注意:一定是DEBUG方式运行才有这项功能。
所以应该说这篇文章的方法更好:
在Run->Debug中,New一个Java Application的配置,填入:
org.mortbay.xml.XmlConfiguration
参数填入一个自己的JETTY配置文件:
完成的myjetty.xml配置文件,请将其中的相应目录修改成自己项目的目录:
<! DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd" >
<!-- =============================================================== -->
<!-- Configure the Jetty Server -->
<!-- -->
<!-- Documentation of this file format can be found at: -->
<!-- http://docs.codehaus.org/display/JETTY/jetty.xml -->
<!-- -->
<!-- =============================================================== -->
< Configure id ="Server" class ="org.mortbay.jetty.Server" >
<!-- =========================================================== -->
<!-- Server Thread Pool -->
<!-- =========================================================== -->
< Set name ="ThreadPool" >
<!-- Default bounded blocking threadpool
-->
< New class ="org.mortbay.thread.BoundedThreadPool" >
< Set name ="minThreads" > 10 </ Set >
< Set name ="maxThreads" > 250 </ Set >
< Set name ="lowThreads" > 25 </ Set >
</ New >
<!-- Optional Java 5 bounded threadpool with job queue
<New class="org.mortbay.thread.concurrent.ThreadPool">
<Set name="corePoolSize">250</Set>
<Set name="maximumPoolSize">250</Set>
</New>
-->
</ Set >
<!-- =========================================================== -->
<!-- Set connectors -->
<!-- =========================================================== -->
<!-- One of each type! -->
<!-- =========================================================== -->
<!-- Use this connector for many frequently idle connections
and for threadless continuations.
-->
< 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 ="statsOn" > false </ Set >
< Set name ="confidentialPort" > 8443 </ Set >
< Set name ="lowResourcesConnections" > 5000 </ Set >
< Set name ="lowResourcesMaxIdleTime" > 5000 </ Set >
</ New >
</ Arg >
</ Call >
<!-- Use this connector if NIO is not available.
<Call name="addConnector">
<Arg>
<New class="org.mortbay.jetty.bio.SocketConnector">
<Set name="port">8081</Set>
<Set name="maxIdleTime">50000</Set>
<Set name="lowResourceMaxIdleTime">1500</Set>
</New>
</Arg>
</Call>
-->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- To add a HTTPS SSL listener -->
<!-- see jetty-ssl.xml to add an ssl connector. use -->
<!-- java -jar start.jar etc/jetty.xml etc/jetty-ssl.xml -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- =========================================================== -->
<!-- Set up global session ID manager -->
<!-- =========================================================== -->
<!--
<Set name="sessionIdManager">
<New class="org.mortbay.jetty.servlet.HashSessionIdManager">
<Set name="workerName">node1</Set>
</New>
</Set>
-->
<!-- =========================================================== -->
<!-- Set handler Collection Structure -->
<!-- =========================================================== -->
< Set name ="handler" >
< New id ="Handlers" class ="org.mortbay.jetty.handler.HandlerCollection" >
< Set name ="handlers" >
< Array type ="org.mortbay.jetty.Handler" >
< Item >
< New id ="Contexts" class ="org.mortbay.jetty.handler.ContextHandlerCollection" />
</ Item >
< Item >
< New id ="DefaultHandler" class ="org.mortbay.jetty.handler.DefaultHandler" />
</ Item >
< Item >
< New id ="RequestLog" class ="org.mortbay.jetty.handler.RequestLogHandler" />
</ Item >
</ Array >
</ Set >
</ New >
</ Set >
< 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" > /ebnms </ Set >
< Set name ="resourceBase" > E:/Prj2/ForMe/Src/flower/src/main/webapp </ Set >
< Call name ="addServlet" >
< Arg > org.mortbay.jetty.servlet.DefaultServlet </ Arg >
< Arg > / </ Arg >
</ Call >
</ New >
</ Item >
</ Array >
</ Set >
</ New >
</ Set >
<!-- =========================================================== -->
<!-- Configure Authentication Realms -->
<!-- Realms may be configured for the entire server here, or -->
<!-- they can be configured for a specific web app in a context -->
<!-- configuration (see $(jetty.home)/contexts/test.xml for an -->
<!-- example). -->
<!-- =========================================================== -->
< Set name ="UserRealms" >
< Array type ="org.mortbay.jetty.security.UserRealm" >
<!--
<Item>
<New class="org.mortbay.jetty.security.HashUserRealm">
<Set name="name">Test Realm</Set>
<Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
</New>
</Item>
-->
</ Array >
</ Set >
<!-- =========================================================== -->
<!-- Configure Request Log -->
<!-- Request logs may be configured for the entire server here, -->
<!-- or they can be configured for a specific web app in a -->
<!-- contexts configuration (see $(jetty.home)/contexts/test.xml -->
<!-- for an example). -->
<!-- =========================================================== -->
<!-- Ref id="RequestLog">
<Set name="requestLog">
<New id="RequestLogImpl" class="org.mortbay.jetty.NCSARequestLog">
<Set name="filename"><SystemProperty name="jetty.logs" default="./logs"/>/yyyy_mm_dd.request.log</Set>
<Set name="filenameDateFormat">yyyy_MM_dd</Set>
<Set name="retainDays">90</Set>
<Set name="append">true</Set>
<Set name="extended">true</Set>
<Set name="logCookies">false</Set>
<Set name="LogTimeZone">GMT</Set>
</New>
</Set>
</Ref -->
<!-- =========================================================== -->
<!-- extra options -->
<!-- =========================================================== -->
< Set name ="stopAtShutdown" > true </ Set >
< Set name ="sendServerVersion" > true </ Set >
<!-- Set name="sendDateHeader">true</Set -->
<!-- Set name="gracefulShutdown">1000</Set -->
</ Configure >