У меня есть проект, который запускает встроенный сервер причала. Кроме того, у меня есть angularjs-1.2.12.jar в зависимости от проекта.Как настроить встроенный причал + webjars
Как настроить причал, чтобы выставить файлы из META-INF/resources. я попытался сделать следующее:
ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(true);
resource_handler.setWelcomeFiles(new String[]{ "index.html" });
resource_handler.setBaseResource(Resource.newClassPathResource("/"));
Server server = new Server(8080);
server.setHandler(resource_handler);
Но только файлы из целевых/классов подвергаются.
спасибо.
UPD: решена
ResourceHandler resource_handler = new ResourceHandler() {
@Override
public Resource getResource(String path)
throws MalformedURLException {
Resource resource = Resource.newClassPathResource(path);
if (resource == null || !resource.exists()) {
resource = Resource.newClassPathResource("META-INF/resources" + path);
}
return resource;
}
};
resource_handler.setDirectoriesListed(true);
resource_handler.setWelcomeFiles(new String[]{"index.html"});
resource_handler.setResourceBase("/");
server.setHandler(resource_handler);
Какую версию Jetty вы используете? –
jetty-all-9.1.1 –
Похоже, что решение может выявить все ресурсы в classpath, которые будут использоваться как статические активы. Если это может быть большой лазейкой безопасности. Вот почему по умолчанию Servlet 3 используется только для префиксных путей META-INF/resources. –