Hi! I'm doing a webservice that can be stop using a request, I had followed one forum here. But I run in a trouble stopping the component in a virtual host set up.
Here is the first testcase 1, I can stop the server using http://localhost:8182/stop /////////////////// // testcase 1 // /////////////////// public static void main(String[] args) throws Exception{ Component component=new Component(); component.getServers().add(Protocol.HTTP,8182); //Private Port component.getServers().add(Protocol.HTTP,8183); //Public Port MyApplication myApp=new MyApplication(); component.getDefaultHost().attach(myApp); myApp.getContext().getAttributes().put("component", component); component.start(); } /////////////////// // MyApplication // /////////////////// public class MyApplication extends Application { @Override public synchronized Restlet createInboundRoot() { Router router = new Router(getContext()); router.attach("/stop", StopResource.class); return router; } } /////////////////// // StopResource // /////////////////// public class StopResource extends ServerResource { @Get public Representation requestGet() throws Exception{ ((Component) getContext().getAttributes().get("component")).stop(); return null; } } Here is a testcase 2 that is using a virtual host /////////////////// // testcase 2 // /////////////////// public static void main(String[] args) throws Exception{ 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(); component.getContext().getAttributes().put("component", component); VirtualHost proxyHost = new VirtualHost(component.getContext()); proxyHost.setHostDomain(cannonicalHostName); proxyHost.setHostPort("8182"); proxyHost.attach("/stop", StopResource.class); VirtualHost loadBalance = new VirtualHost(component.getContext()); loadBalance.setHostDomain(cannonicalHostName); loadBalance.setHostPort("8183"); loadBalance.setRoutingMode(Router.MODE_NEXT_MATCH); component.getHosts().add(proxyHost); component.getHosts().add(loadBalance); component.start(); } Here is the stacktrace for the testcase 2 Apr 20, 2010 10:01:27 AM org.restlet.resource.UniformResource doCatch WARNING: Exception or error caught in resource java.lang.NullPointerException at com.ti.itg.peit.peitcache.resource.StopResource.requestGet(StopResource.java:24) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.restlet.resource.ServerResource.doHandle(ServerResource.java:427) at org.restlet.resource.ServerResource.get(ServerResource.java:592) at org.restlet.resource.ServerResource.doHandle(ServerResource.java:474) at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:534) at org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:270) at org.restlet.resource.ServerResource.handle(ServerResource.java:764) at org.restlet.resource.Finder.handle(Finder.java:515) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Router.doHandle(Router.java:495) at org.restlet.routing.Router.handle(Router.java:735) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Router.doHandle(Router.java:495) at org.restlet.routing.Router.handle(Router.java:735) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:152) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111) at org.restlet.Component.handle(Component.java:385) at org.restlet.Server.handle(Server.java:474) at org.restlet.engine.http.connector.BaseServerHelper.handle(BaseServerHelper.java:158) at org.restlet.engine.http.connector.BaseServerHelper.handleInbound(BaseServerHelper.java:167) at org.restlet.engine.http.connector.BaseHelper.handleNextInbound(BaseHelper.java:366) at org.restlet.engine.http.connector.Connection.readMessages(Connection.java:701) at org.restlet.engine.http.connector.ControllerTask$2.run(ControllerTask.java:94) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) and thanks in advance for answering my question/query Sincerly, Gerald ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2589898