Hi Thierry, Thanks for the reply, i got it working on stopping without our Application. But when I add the code for our Application, it seems it can't fully exit the jvm. I tried it first without loadBalance.attach("/webservice/PEITCache", new MainPEITCacheApplication("c:\\webappsProperties\\cache.ccf")); it is working find in shutting down the component, but once I add it it can't.
///////////////////////////////////////////////////////////////////////////////////////////////////////////// public static void main(String[] args) throws Exception{ final Component component=new Component(); component.getServers().add(Protocol.HTTP,8182); //Private Port component.getServers().add(Protocol.HTTP,8183); //Public Port InetAddress inet = InetAddress.getLocalHost(); String cannonicalHostName = inet.getCanonicalHostName(); VirtualHost proxyHost = new VirtualHost(component.getContext()) { public Route attach(String pathTemplate, Restlet target, int matchingMode) { target.getContext().getAttributes().put("component", component); return super.attach(pathTemplate, target, matchingMode); } }; proxyHost.setHostDomain(cannonicalHostName); proxyHost.setHostPort("8182"); proxyHost.attach("/stop", StopResource.class); VirtualHost loadBalance = new VirtualHost(component.getContext()); loadBalance.setHostDomain(cannonicalHostName); loadBalance.setHostPort("8183"); loadBalance.attach("/webservice/PEITCache", new MainPEITCacheApplication("c:\\webappsProperties\\cache.ccf")); loadBalance.setRoutingMode(Router.MODE_NEXT_MATCH); component.getHosts().add(proxyHost); component.getHosts().add(loadBalance); component.start(); } //////////////////////////////////////////////////////////////// MainPEITCacheApplication /////////////////////////////////////////////////////////////// public class MainPEITCacheApplication extends Application { String cachePropLoc=null; /** * A method to instantiate MainPEITCacheApplication * @param cachePropLoc String location of the cache property file */ public MainPEITCacheApplication(String cachePropLoc){ this.cachePropLoc=cachePropLoc; } /** * Creates a root Restlet that will receive all incoming calls. */ @Override public synchronized Restlet createInboundRoot() { Router router = new Router(getContext()); /* * */ //router.attach("/cache", CacheManagerResource.class); router.attach("/", CacheManagerResource.class); router.attach("/{region}",CacheManagerResource.class); TemplateRoute route= router.attach("/{region}/{dynamicurl}", CacheManagerResource.class); Variable v=new Variable(Variable.TYPE_ALL); route.getTemplate().getVariables().put("dynamicurl", v); try { CompositeCacheManager ccm = CompositeCacheManager.getUnconfiguredInstance(); Properties props = new Properties(); props.load(new FileInputStream(this.cachePropLoc)); ccm.configure(props); } catch (Exception ex) { ex.printStackTrace(); } return router; } } ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2590305