I successfully embedded Jetty on a test application. It can serve files without issues. Now I want to know if it\'s possible for Jetty to serve files that are inside its own
Found the answer and it's not Jetty, it's Winstone. http://winstone.sf.net
It's pretty simple, if you throw Spring into the equation. And here it goes:
... WebAppContext webAppContext = new WebAppContext(); webAppContext.setServer(server); webAppContext.setContextPath("/"); webAppContext.setResourceBase(new ClassPathResource("webapp").getURI().toString()); server.addHandler(webAppContext); ....
That will make jetty find the necessary web resources inside the jar file.
An example is listed on the Jetty embedding page at http://docs.codehaus.org/display/JETTY/Embedding+Jetty
The trick is to create a File URL to your classpath location.
String webDir = this.class.getClassLoader().getResource("com/company/project/mywebdir").toExternalForm();
ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/");
context.setResourceBase(webDir);
Maybe more of a hack, but aren't JAR files actually ZIPs? (not sure) Could you unzip them into a temporary folder and serve them from there?