Hmm, I could not clap and jars for a directory to work. Do you have the test code that worked available? I will try reducing my code to a bare minimum to see what is going on, but another project has come up so I have to investigate later.
Thanks for your help. On Wed, Jan 9, 2013 at 10:36 PM, Thierry Boileau <tboil...@restlet.com> wrote: > Hi Robert, > > I've just tried the clap connector using a jar file and it works for me (I > mean such url works : "http://localhost:8182/stat/index.html", > "http://localhost:8182/stat/"). Just take care to complete properly the > classpath when lauching your application from the command line. > > Best regards, > Thierry Boileau > > > 2013/1/10 Thierry Boileau <tboil...@restlet.com> >> >> Hello Robert, >> >> from what I notice, the resolution of "a file" is more or less based on >> the ability to discover ressources having the same base name. A file >> directory is perfect because it is possible to list all ressources within >> the same parent directory. >> A classloader is more retrictive and gives access to a single resource... >> which explains the behaviour of the "indexName" attribute of a Directory. >> I check why it does not work from a jar file. >> >> You can also connect the Directory with the jar file using the JAR >> protocol or the ZIP protocol. Such protocol is based on the JDK ZipEntry >> class which has the ability to list files (such as a directory). >> directory = new Directory(getContext(), "zip:" + >> LocalReference.createFileReference(new File("/your/path")) + "!/" ); >> Of course, it obliges you to reference the jarfile from itself. You can >> consider this as a workaround. >> >> Best regards, >> Thierry Boileau >> >> >> 2013/1/10 Robert Brewer <rbre...@lava.net> >>> >>> Hello Restlet folks. I have a problem serving static files using >>> Restlet's Directory class and the CLAP pseudo protocol (apparently a >>> popular topic right now :) >>> >>> I have a standalone web application that uses Restlet to provide a >>> RESTful API. Some students taking a class have written a nice client >>> for the web application as a Single Page Application (SPA) consisting >>> of HTML5/CSS/Javascript. I would like to store a directory containing >>> the static SPA files in my web application's jar file and to serve >>> them under a specific URI so the SPA client and server are >>> self-contained >>> >>> The way I am trying to do this is: >>> >>> public synchronized Restlet createInboundRoot() { >>> ... >>> Directory directory = new Directory(getContext(), >>> "clap://class/spa/"); >>> router.attach("/spa/", directory); >>> ... >>> >>> Unfortunately, this doesn't work. When I run the server from my jar >>> file and point a browser at "/spa/", the browser downloads an empty >>> file (Chrome calls it "download", Safari calls it "spa") rather than >>> rendering the page. Browsing to "/spa/index.html" does work, but I >>> don't want users to have to remember to add the "index.html". >>> >>> Am I doing something wrong here? It seems like this should work. I'm >>> open to other ways to accomplish this goal. >>> >>> Annoyingly, the server behaves differently when running from Eclipse >>> than when running from a jar file, which makes troubleshooting this >>> problem more painful since I have to build the jar file to test >>> fixes.For example, when running from Eclipse, "/spa/" gives a 404 >>> error, instead of downloading an empty file. >>> >>> I also tried playing with setIndexName(). If I set it to "index.html" >>> (including the extension despite the Javadoc saying the parameter >>> should be without extension), then it works when run from Eclipse but >>> not from the jar file. >>> >>> Thanks in advance for any suggestions on how to make this work! >>> >>> -- >>> Robert Brewer >>> http://excitedcuriosity.wordpress.com/ >>> https://www.facebook.com/kukuicup >>> >>> ------------------------------------------------------ >>> >>> http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=3042270 -- Robert Brewer http://excitedcuriosity.wordpress.com/ https://www.facebook.com/kukuicup ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=3042617