У меня есть новое веб-приложение, упакованное как WAR как часть многомодульного проекта Maven. ApplicationContext.xml для этой WAR ссылается на bean-компоненты, которые импортируются из модуля «service», который, в свою очередь, импортирует bean-компоненты из модуля «dao». Оператор импорта в applicationContext.xml выглядит так:
<import resource="classpath*:service.xml" />
, а тот, который находится внутри файла service.xml, выглядит так:
<import resource="classpath*:dao.xml" />
Ни Spring STS, ни Eclipse не показывают никаких предупреждений или ошибок в моих bean-файлах. Я повсюду ссылаюсь на импортированные бобы. Сборка Maven работает нормально, и все тесты интеграции DAO проходят успешно (они используют bean-компоненты). У меня пока нет тестов интеграции сервисов.
Но когда я запускаю WAR в Jetty, я получаю сообщение об ошибке:
Error creating bean with name 'securityService'
Cannot resolve reference to bean 'userDAO' while setting constructor argument
Все импортированные XML-файлы bean-компонентов можно найти внутри соответствующих JAR-файлов в каталоге WEB-INF / lib. Действительно, служебный компонент, вызвавший ошибку, сам определен в файле service.xml внутри JAR-файла служебного модуля.
Очевидно, сервисный модуль не может найти bean-компонент, импортированный из модуля dao. Я явно чего-то не понимаю ... кажется, это должно работать?