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