Подтвердить что ты не робот

Embedded Jetty ищет файлы внутри своего Jar файла

Я успешно внедрил Jetty в тестовое приложение. Он может обслуживать файлы без проблем. Теперь я хочу знать, может ли Jetty обслуживать файлы, которые находятся внутри собственного файла Jar.

Кто-нибудь знает, возможно ли это?

4b9b3361

Ответ 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? (не уверен) Не могли бы вы разархивировать их во временную папку и обслуживать их оттуда?