I wanted to set up something like is shown in the tutorial component diagram
where there are VirtualHost A and B and Application 1, 2, and 3. I'm using
RC3 and my code looks like this:

public class ComponentServer {
  public static final String DOC_URI
      file:////home/slandis/restlet-1.0rc3/docs/api/";
  public static final String JAR_URI
      "file:////home/slandis/restlet-1.0rc3/lib/org.restlet.jar";
  public static void main(String[] args) throws Exception {
    Component component = new Component();
    component.getServers().add(Protocol.HTTP, 8182);
    component.getClients().add(Protocol.FILE);

    VirtualHost vh1 = new VirtualHost(component.getContext());
    vh1.setHostDomain("localhost");
    Application application1 = new Application(component.getContext()) {
        @Override public Restlet createRoot() {
            Directory directory = new Directory(getContext(), DOC_URI);
            return directory;
        }
    };

    VirtualHost vh2 = new VirtualHost(component.getContext());
    vh2.setHostDomain("wasatch");
    Application application2 = new Application(component.getContext()) {
      @Override public Restlet createRoot() {
        Restlet jarRestlet = new Restlet(getContext()) {
          @Override public void handle(Request request, Response response) {
            FileRepresentation frep = new FileRepresentation(JAR_URI,
              MediaType.APPLICATION_JAVA_ARCHIVE, 1000);
            response.setEntity(frep);
          }
        };
        return jarRestlet;
      }
    };

    vh1.attach("/docs", application1);
    component.getHosts().add(vh1);
    vh2.attach("/jar", application2);
    component.getHosts().add(vh2);
    component.start();
  }


I can access "/docs" but "/jar" is not resolved. I get:
"The server has not found anything matching the request URI"

I tried looking at the code but got lost trying to figure out the dispatching
of the handle() method to the handler. I kept going in circles and never
could find where the servers list was being used.

Any help appreciated.
Sean

Reply via email to