I am using embedded jetty and loading contexts through xml file. In my application, following contexts were deployed in my jetty 6.1.7 version:
<New class="org.mortbay.jetty.servlet.Context">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.home" default="."/>/</Set>
<Set name="sessionHandler">
<New class="org.mortbay.jetty.servlet.SessionHandler"/>
</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.TransformationServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.mortbay.jetty.servlet.Context">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/monitor</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.home" default="."/>/</Set>
<Set name="sessionHandler">
<New class="org.mortbay.jetty.servlet.SessionHandler"/>
</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.MonitorServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.mortbay.jetty.servlet.Context">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/blazon</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.home" default="."/>/</Set>
<Set name="sessionHandler">
<New class="org.mortbay.jetty.servlet.SessionHandler"/>
</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.BlazonJobServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.mortbay.jetty.servlet.Context">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/getCapabilities</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.home" default="."/>/</Set>
<Set name="sessionHandler">
<New class="org.mortbay.jetty.servlet.SessionHandler"/>
</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.CapabilityServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.mortbay.jetty.servlet.Context">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/output</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.home" default="."/>/../cache/</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.FileProxyServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.mortbay.jetty.servlet.Context">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/resource</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.home" default="."/>/../resource/</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.FileProxyServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.mortbay.jetty.servlet.Context">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/canExecute</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.home" default="."/>/</Set>
<Set name="sessionHandler">
<New class="org.mortbay.jetty.servlet.SessionHandler"/>
</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.CanExecuteServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.mortbay.jetty.servlet.Context">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/getOccupancy</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.home" default="."/>/</Set>
<Set name="sessionHandler">
<New class="org.mortbay.jetty.servlet.SessionHandler"/>
</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.GetOccupancyServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.mortbay.jetty.servlet.Context">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/delete</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.home" default="."/>/</Set>
<Set name="sessionHandler">
<New class="org.mortbay.jetty.servlet.SessionHandler"/>
</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.CleanupJobServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
We are moving to jetty 9 and and tried deploying contexts something like this:
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
<Configure id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection">
<New class="org.eclipse.jetty.servlet.ServletContextHandler">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.base" default="."/>/</Set>
<Set name="sessionHandler">
<New class="org.eclipse.jetty.server.session.SessionHandler"/>
</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.TransformationServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.eclipse.jetty.servlet.ServletContextHandler">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/monitor</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.base" default="."/>/</Set>
<Set name="sessionHandler">
<New class="org.eclipse.jetty.server.session.SessionHandler"/>
</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.MonitorServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.eclipse.jetty.servlet.ServletContextHandler">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/blazon</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.base" default="."/>/</Set>
<Set name="sessionHandler">
<New class="org.eclipse.jetty.server.session.SessionHandler"/>
</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.BlazonJobServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.eclipse.jetty.servlet.ServletContextHandler">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/getCapabilities</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.base" default="."/>/</Set>
<Set name="sessionHandler">
<New class="org.eclipse.jetty.server.session.SessionHandler"/>
</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.CapabilityServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.eclipse.jetty.servlet.ServletContextHandler">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/output</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.base" default="."/>/../cache/</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.FileProxyServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.eclipse.jetty.servlet.ServletContextHandler">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/resource</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.base" default="."/>/../resource/</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.FileProxyServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.eclipse.jetty.servlet.ServletContextHandler">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/canExecute</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.base" default="."/>/</Set>
<Set name="sessionHandler">
<New class="org.eclipse.jetty.server.session.SessionHandler"/>
</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.CanExecuteServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.eclipse.jetty.servlet.ServletContextHandler">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/getOccupancy</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.base" default="."/>/</Set>
<Set name="sessionHandler">
<New class="org.eclipse.jetty.server.session.SessionHandler"/>
</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.GetOccupancyServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
<New class="org.eclipse.jetty.servlet.ServletContextHandler">
<Arg>
<Ref id="Contexts"/>
</Arg>
<Arg>/cts/delete</Arg>
<Set name="resourceBase">
<SystemProperty name="jetty.base" default="."/>/</Set>
<Set name="sessionHandler">
<New class="org.eclipse.jetty.server.session.SessionHandler"/>
</Set>
<Call name="addServlet">
<Arg>com.docu.cts.webservices.remote.CleanupJobServlet</Arg>
<Arg>/</Arg>
</Call>
</New>
</Configure>
basically I have used latest APIs of jetty thats it, I am not sure if this is the correct way of deploying contexts or not. Any inputs provided will be really helpful.