Embedded Jetty ищет файлы внутри своего Jar файла
Я успешно внедрил Jetty в тестовое приложение. Он может обслуживать файлы без проблем.
Теперь я хочу знать, может ли Jetty обслуживать файлы, которые находятся внутри собственного файла Jar.
Кто-нибудь знает, возможно ли это?
Ответы
Ответ 1
Пример указан на странице внедрения 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);
Ответ 2
Это довольно просто, если вы выбросите Spring в уравнение. И вот он идет:
...
WebAppContext webAppContext = new WebAppContext();
webAppContext.setServer(server);
webAppContext.setContextPath("/");
webAppContext.setResourceBase(new ClassPathResource("webapp").getURI().toString());
server.addHandler(webAppContext);
....
Это заставит пристань найти необходимые веб-ресурсы внутри файла jar.
Ответ 3
Может быть, больше взлома, но не файлы JAR на самом деле ZIP? (не уверен) Не могли бы вы разархивировать их во временную папку и обслуживать их оттуда?
Ответ 4
Нашел ответ, и это не Jetty, это Winstone. http://winstone.sf.net