Нашел ответ, и это не Jetty, это Winstone. http://winstone.sf.net
Может быть, это больше похоже на взлом, но разве файлы JAR не являются ZIP-файлами? (не уверен) Не могли бы вы распаковать их во временную папку и обслуживать оттуда?
Пример приведен на странице внедрения Jetty по адресу http: //docs.codehaus. org / display / JETTY / Embedding + Jetty
Уловка состоит в том, чтобы создать URL-адрес файла для вашего пути к классам.
String webDir = this.class.getClassLoader().getResource("com/company/project/mywebdir").toExternalForm();
ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/");
context.setResourceBase(webDir);
Все довольно просто, если включить в уравнение Spring. И вот оно:
... WebAppContext webAppContext = new WebAppContext(); webAppContext.setServer(server); webAppContext.setContextPath("/"); webAppContext.setResourceBase(new ClassPathResource("webapp").getURI().toString()); server.addHandler(webAppContext); ....
Это заставит jetty найти необходимые веб-ресурсы внутри jar-файла.