目前发现的最好最快的直接在ECLIPSE中JETTY调试方式最近项目用到maven,所以找到了这篇文章,正好实用挺不错
目前发现的最好最快的直接在ECLIPSE中JETTY调试方式
最近项目用到maven,所以找到了这篇文章,正好实用挺不错的。
?
适用于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配置文件,请将其中的相应目录修改成自己项目的目录:
<?xml?version="1.0"?>
<!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?alt="当前发现的最好最快的直接在ECLIPSE中JETTY调试方式">????????<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?alt="当前发现的最好最快的直接在ECLIPSE中JETTY调试方式">????????????<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?alt="当前发现的最好最快的直接在ECLIPSE中JETTY调试方式">????????<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"?alt="当前发现的最好最快的直接在ECLIPSE中JETTY调试方式">????????</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?alt="当前发现的最好最快的直接在ECLIPSE中JETTY调试方式">????????????<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"?alt="当前发现的最好最快的直接在ECLIPSE中JETTY调试方式">??????????<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>