У меня есть новое веб-приложение, которое упаковано как 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 не показывают никаких предупреждений или ошибок в моих файлах компонентов. Я упоминаю импортированные бобы повсюду. Сборка Maven работает нормально, и все тесты интеграции DAO проходят (они используют компоненты). У меня пока нет тестов интеграции сервисов.
Но когда я запускаю 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 модуля службы.
Очевидно, что служебный модуль не может найти компонент, импортированный из модуля dao. Очевидно, я чего-то не понимаю ... кажется, что это должно быть просто работать?