Hello Jeff,

your application has been instantiated with its parent context, i.e the one of the component.
You should proceed like this
component.getDefaultHost().attach("", new TestApplication(component.getContext()));

Best regards,
Thierry Boileau

Hey All,

I'm trying simply to access some files in a directory and am getting a NPE in the ApplicationDispatcher.handle method.

Here's my example:

TestLauncher.java

import org.restlet.Component ;
import org.restlet.data.Protocol;

public class TestLauncher {

    public static void main(String[] args) {
        try {
            Component component = new Component();
            component.getServers ().add(Protocol.HTTP, 8181);
            component.getClients().add(Protocol.FILE);
component.getDefaultHost().attach("", new TestApplication()); component.start();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

TestApplication.java

import org.restlet.Application;
import org.restlet.Directory ;
import org.restlet.Restlet;
import org.restlet.Router;

public class TestApplication extends Application {

    @Override
    public Restlet createRoot() {
        Router rootRouter = new Router();
Directory imagesDirectory = new Directory(getContext(), "file:///C:/images/");
        rootRouter.attach("/images/", imagesDirectory);
return rootRouter;
    }
}

And this is the error I get on every request to http://localhost:8181/images/somefile.gif

java.lang.NullPointerException
at com.noelios.restlet.application.ApplicationDispatcher.handle(ApplicationDispatcher.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.<init>(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(ApplicationHelper.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(Filter.java:105)
    at org.restlet.Filter.handle(Filter.java:134)
at com.noelios.restlet.component.ComponentHelper.handle(ComponentHelper.java:115)
    at org.restlet.Component.handle (Component.java:228)
    at org.restlet.Server.handle(Server.java:266)
    at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:99)
at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java :94) at com.noelios.restlet.ext.jetty.JettyServerHelper$WrappedServer.handle(JettyServerHelper.java:232) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:458) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete (HttpConnection.java:776)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
    at org.mortbay.jetty.HttpConnection.handle ( HttpConnection.java:358)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:336) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)

I'm using Jetty and the latest code (downloaded yesterday) from http://www.restlet.org/downloads/1.0/current. zip <http://www.restlet.org/downloads/1.0/current.zip>

Am I missing something here?

Thanks,
Jeff

Reply via email to