RE: RE: Directory restlet
Hi Chuck, Agreed, the Javadocs have been updated in SVN. The general rule is to use the constructor with the Context parameter instead of the default/"lazy" one. Best regards, Jerome > -Message d'origine- > De : Chuck Hinson [mailto:[EMAIL PROTECTED] > Envoyé : lundi 23 avril 2007 15:31 > À : discuss@restlet.tigris.org > Objet : RE: RE: Directory restlet > > I've always wondered about this... > > I've noticed that a lot of the Restlet subclasses have two > constructors - a no-arg constructor and one that takes a > Context object. Trouble is, none of the API documentation > indicates why I would use one over the other. It would be > nice if there were something in the API docs that says which > should be used when. > > --Chuck > > -Original Message- > From: Jerome Louvel [mailto:[EMAIL PROTECTED] > Sent: Monday, April 23, 2007 8:07 AM > To: discuss@restlet.tigris.org > Subject: RE: Directory restlet > > > Hi all, > > This is the same issue indeed. I've added a test to prevent > the NPE and log a warning message in the log instead. > Committed to SVN. > > Best regards, > Jerome > > > -Message d'origine- > > De : Jeff Walter [mailto:[EMAIL PROTECTED] Envoyé : lundi 23 > > avril 2007 13:55 À : discuss@restlet.tigris.org Objet : Re: > Directory > > restlet > > > > Hey Chuck, > > > > I had this same issue earlier this month -- it seems now > when creating > > your application object, you need to pass it the component Context. > > > > Application application = new ProxyEngine(component.getContext ()); > > > > Hope this helps, > > Jeff > > > > > > On 4/20/07, Chuck Hinson <[EMAIL PROTECTED]> wrote: > > > > > > I thought I had done this before and had it working. > > Can somebody tell > > me what I' m doing wrong? > > I'm using the 1.0.0 release. > > > > --Chuck > > > > public Restlet createRoot() { > > > > Context context = getContext(); > > Router router = new Router(getContext()); > > > > // router.attach("/provider/", ProviderResource.class); > > Directory directory = new Directory(getContext(), > > " file:///D:/tmp/"); > > router.attach("/files/",directory); > > > > return router; > > > > } > > > > public static void main(String[] args) > > throws Exception > > { > > > > Component component = new Component(); > > component.getServers().add(Protocol.HTTP, 8003); > > component.getClients().add(Protocol.FILE); > > > > Application application = new ProxyEngine(); > > > > VirtualHost host = component.getDefaultHost(); > > if (host == null) throw new RuntimeException("test"); > > host.attach("", application); > > > > component.start(); > > > > } > > > > > > When I put http://localhost:8003/files/ in my browser, > an exception > > is > > thrown: > > > > > > Apr 20, 2007 4:20:00 PM > > com.noelios.restlet.StatusFilter getStatus > > SEVERE: Unhandled exception or error intercepted > > java.lang.NullPointerException > > at > > > > > com.noelios.restlet.application.ApplicationDispatcher.handle(Applicat > > ionDispatcher.java:81) > > at > > com.noelios.restlet.TemplateDispatcher.handle > > (TemplateDispatcher.java > > :89) > > at org.restlet.Uniform.handle(Uniform.java:97) > > at org.restlet.Uniform.get(Uniform.java:74) > > at > > > > > com.noelios.restlet.local.DirectoryResource.(DirectoryResource. > > java:142) > > at > > > > com.noelios.restlet.Engine.createDirectoryResource(Engine.java:253) > > at org.restlet.Directory.findTarget(Directory.java:145) > > at org.restlet.Finder.handle(Finder.java:268) > > at org.restlet.Filter.doHandle(Filter.java:105) > > at org.restlet.Filter.handle(Filter.java:134) > > at org.restlet.Router.handle(Router.java:441) > > at org.restlet.Filt
RE: RE: Directory restlet
I've always wondered about this... I've noticed that a lot of the Restlet subclasses have two constructors - a no-arg constructor and one that takes a Context object. Trouble is, none of the API documentation indicates why I would use one over the other. It would be nice if there were something in the API docs that says which should be used when. --Chuck -Original Message- From: Jerome Louvel [mailto:[EMAIL PROTECTED] Sent: Monday, April 23, 2007 8:07 AM To: discuss@restlet.tigris.org Subject: RE: Directory restlet Hi all, This is the same issue indeed. I've added a test to prevent the NPE and log a warning message in the log instead. Committed to SVN. Best regards, Jerome > -Message d'origine- > De : Jeff Walter [mailto:[EMAIL PROTECTED] Envoyé : lundi 23 > avril 2007 13:55 À : discuss@restlet.tigris.org Objet : Re: Directory > restlet > > Hey Chuck, > > I had this same issue earlier this month -- it seems now when creating > your application object, you need to pass it the component Context. > > Application application = new ProxyEngine(component.getContext ()); > > Hope this helps, > Jeff > > > On 4/20/07, Chuck Hinson <[EMAIL PROTECTED]> wrote: > > > I thought I had done this before and had it working. > Can somebody tell > me what I' m doing wrong? > I'm using the 1.0.0 release. > > --Chuck > > public Restlet createRoot() { > > Context context = getContext(); > Router router = new Router(getContext()); > >// router.attach("/provider/", ProviderResource.class); > Directory directory = new Directory(getContext(), > " file:///D:/tmp/"); > router.attach("/files/",directory); > > return router; > > } > > public static void main(String[] args) > throws Exception > { > > Component component = new Component(); > component.getServers().add(Protocol.HTTP, 8003); > component.getClients().add(Protocol.FILE); > > Application application = new ProxyEngine(); > > VirtualHost host = component.getDefaultHost(); > if (host == null) throw new RuntimeException("test"); > host.attach("", application); > > component.start(); > > } > > > When I put http://localhost:8003/files/ in my browser, an exception > is > thrown: > > > Apr 20, 2007 4:20:00 PM > com.noelios.restlet.StatusFilter getStatus > SEVERE: Unhandled exception or error intercepted > java.lang.NullPointerException > at > > com.noelios.restlet.application.ApplicationDispatcher.handle(Applicat > ionDispatcher.java:81) > at > com.noelios.restlet.TemplateDispatcher.handle > (TemplateDispatcher.java > :89) > at org.restlet.Uniform.handle(Uniform.java:97) > at org.restlet.Uniform.get(Uniform.java:74) > at > > com.noelios.restlet.local.DirectoryResource.(DirectoryResource. > java:142) > at > > com.noelios.restlet.Engine.createDirectoryResource(Engine.java:253) > at org.restlet.Directory.findTarget(Directory.java:145) > at org.restlet.Finder.handle(Finder.java:268) > at org.restlet.Filter.doHandle(Filter.java:105) > at org.restlet.Filter.handle(Filter.java:134) > at org.restlet.Router.handle(Router.java:441) > at org.restlet.Filter.doHandle(Filter.java :105) > at org.restlet.Filter.handle(Filter.java:134) > at org.restlet.Filter.doHandle(Filter.java:105) > at > com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:87) > at org.restlet.Filter.handle (Filter.java:134) > at org.restlet.Filter.doHandle(Filter.java:105) > at org.restlet.Filter.handle(Filter.java:134) > at > > com.noelios.restlet.application.ApplicationHelper.handle(ApplicationH > elper.java:92) > at org.restlet.Application.handle(Application.java:290) > at org.restlet.Filter.doHandle(Filter.java:105) > at org.restlet.Filter.handle(Filter.java:134) > at org.restlet.Router.handle (Router.java:441) > at org.restlet.Filter.doHandle(Filter.java:105) > at org.restlet.Filter.handle(Filter.java:134) > at org.restlet.Router.handle(Router.java:441) > at org.restlet.Filter.doHandle (Filter.java:105) > at > com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:87) > at org.restlet.Filter.handle(Filter.java:134) > at org.restlet.Filter.doHandle(Filte