Spring компонентное сканирование не сканирует директорию lib сервера jboss - PullRequest
2 голосов
/ 28 июля 2011

У меня есть файл jar (хранится в jboss-home / server / default / lib) и файл war (хранится в jboss-home / server / default / deploy).Файл jar содержит сервлет, который инициализирует контекст весны.Сервлет инициализируется из файла war.

Проблема в том, что аннотации @Component (и @Service, и т. Д.) В файле jar не сканируются.Выдает ошибку NoSuchBeanDefinitionException.Я объявил следующее в контексте xml.

<context:component-scan base-package="com.abc.mypack" />

Я также выбрал «Добавить записи каталога» при сборке jar с использованием eclipse.

Если я перехожу на конфигурацию на основе xml, это работает,Или, если я переместу файл jar в WEB-INF / lib файла war, он будет работать.

Есть ли способ сканировать каталог lib сервера jboss на наличие компонентов?

Я использую пружину 3.1 и Jboss AS 6.

1 Ответ

2 голосов
/ 28 июля 2011

Эти аннотации не сканируют библиотеки. Они сканируют пакеты, что означает, что библиотеки, содержащие эти пакеты, должны находиться в пути к классам.

Скорее всего, библиотеки, на которые вы ссылаетесь, находятся на разных загрузчиках классов.

Я бы предложил упаковать jar в каталог WEB-INF / lib войны.

...