Jettyへのwarのデプロイ
Jettyは、デフォルトでいろんな設定のxmlがあります。
jetty.home/etcにあるやつです。
分かり易いように、目的毎にファイルを分けてくれてると思うのですが、
シンプルなWebApplicationをデプロイしたい場合、どうにもごちゃついて見えます。
自分は、単一アプリケーションでのWarデプロイの場合、全てjetty.xmlに書くようにしてみました。
<?xml version="1.0"?> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> <!-- =============================================================== --> <!-- Configure the Jetty Server --> <!-- --> <!-- Documentation of this file format can be found at: --> <!-- http://wiki.eclipse.org/Jetty/Reference/jetty.xml_syntax --> <!-- --> <!-- Additional configuration files are available in $JETTY_HOME/etc --> <!-- and can be mixed in. For example: --> <!-- java -jar start.jar etc/jetty-ssl.xml --> <!-- --> <!-- See start.ini file for the default configuraton files --> <!-- =============================================================== --> <Configure id="Server" class="org.eclipse.jetty.server.Server"> <!-- =========================================================== --> <!-- Server Thread Pool --> <!-- =========================================================== --> <Set name="ThreadPool"> <!-- Default queued blocking threadpool --> <New class="org.eclipse.jetty.util.thread.QueuedThreadPool"> <Set name="minThreads">10</Set> <Set name="maxThreads">200</Set> <Set name="detailedDump">false</Set> </New> </Set> <!-- =========================================================== --> <!-- 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> <!-- =========================================================== --> <!-- Set handler Collection Structure --> <!-- =========================================================== --> <Set name="handler"> <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection"> <Set name="handlers"> <Array type="org.eclipse.jetty.server.Handler"> <!-- ======================================================= --> <!-- Configure a web application with web.xml --> <!-- ======================================================= --> <Item> <New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/> </Item> <Item> <New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/> </Item> </Array> </Set> </New> </Set> <!-- =========================================================== --> <!-- Create the deployment manager --> <!-- (moved from jetty-deploy.xml) --> <!-- =========================================================== --> <Call name="addBean"> <Arg> <New id="DeploymentManager" class="org.eclipse.jetty.deploy.DeploymentManager"> <Set name="contexts"> <Ref id="Contexts" /> </Set> <Call name="setContextAttribute"> <Arg>org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern</Arg> <Arg>.*/servlet-api-[^/]*\.jar$</Arg> </Call> <!-- =========================================================== --> <!-- Add a WebAppProvider to the deployment manager --> <!-- (moved from jetty-webapps.xml) --> <!-- =========================================================== --> <Call id="webappprovider" name="addAppProvider"> <Arg> <New class="org.eclipse.jetty.deploy.providers.WebAppProvider"> <Set name="monitoredDirName"><Property name="jetty.home" default="." />/webapps</Set> <Set name="defaultsDescriptor"><Property name="jetty.home" default="."/>/etc/webdefault.xml</Set> <Set name="scanInterval">1</Set> <Set name="contextXmlDir"><Property name="jetty.home" default="." />/contexts</Set> <Set name="extractWars">true</Set> </New> </Arg> </Call> </New> </Arg> </Call> <!-- =========================================================== --> <!-- extra options --> <!-- =========================================================== --> <Set name="stopAtShutdown">true</Set> <Set name="sendServerVersion">true</Set> <Set name="sendDateHeader">true</Set> <Set name="gracefulShutdown">1000</Set> <Set name="dumpAfterStart">false</Set> <Set name="dumpBeforeStop">false</Set> </Configure>
DeploymentManagerの記述をjetty-deploy.xmlから、
WebAppProviderの記述をjetty-webapps.xmlから、写しただけです。
これで、jetty.home/webappsにwarを突っ込むだけで、OKです。
start.iniは、etc/jetty.xmlとetc/jetty-requestlog.xmlだけ指定してます。
あとSSLの設定は、個人的に切り分けたいので、外出しにしています。
シンプルですね!