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

Reply via email to