Весна: поиск ресурсов во внутренней банке - PullRequest
4 голосов
/ 20 мая 2011

У меня есть эта структура войны: Some.war

-WEB-INF
--lib
--- library.jar
---- some.xsd
---- some2.xsd

И я хочу получить все файлы xsd в library.jar, но Spring не хочет их искать.

ContextLoaderListener.getCurrentWebApplicationContext()
                     .getResources("classpath*:**/*.xsd")

результат пуст. Я тоже попробовал: classpath:**/*.xsd, **/*.xsd.

Как я могу получить все xsd файлы в банке, используя шаблон "ant" (* / .xsd)?

1 Ответ

8 голосов
/ 20 мая 2011

Ответ находится в документах Spring:

4.7.2.3 Другие примечания, касающиеся подстановочных знаков

Обратите внимание, что "classpath *: "в сочетании с шаблонами в стиле Ant будет надежно работать только с хотя бы одним корневым каталогом до запуска шаблона, если только фактические целевые файлы не находятся в файловой системе. Это означает, что шаблон типа "classpath *: *. Xml" не будет извлекать файлы из корня файлов jar, а только из корня расширенных каталогов. Это происходит из-за ограничения в JDK ClassLoader.getResources() метод, который возвращает только местоположение файловой системы для переданной пустой строки (с указанием потенциальных корней для поиска).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...