Tôi có một ứng dụng web mới được đóng gói như một WAR như một phần của dự án Maven đa mô-đun. Tệp applicationContext.xml cho tham chiếu WAR này được nhập từ mô-đun "dịch vụ", lần lượt nhập các bean từ mô-đun "dao". Những tuyên bố nhập khẩu applicationContext.xml trông như thế này:Nhập hạt đậu mùa xuân từ các mô-đun Maven khác bên trong một WAR?
<import resource="classpath*:service.xml" />
và một bên trong tập tin service.xml trông như thế này:
<import resource="classpath*:dao.xml" />
Cả mùa xuân STS, cũng không phải Eclipse hiển thị bất kỳ cảnh báo hay lỗi trong các tệp bean của tôi. Tôi tham khảo đậu nhập khẩu trên khắp nơi. Việc xây dựng Maven hoạt động tốt và các bài kiểm tra tích hợp DAO tất cả vượt qua (họ sử dụng đậu). Tôi chưa có bất kỳ thử nghiệm tích hợp dịch vụ nào.
Nhưng khi tôi khởi động WAR trong Jetty tôi nhận được một lỗi:
Error creating bean with name 'securityService'
Cannot resolve reference to bean 'userDAO' while setting constructor argument
Tất cả các tập tin XML đậu nhập khẩu có thể được tìm thấy bên trong các tập tin JAR của mình trong thư mục WEB-INF/lib. Thật vậy, bean dịch vụ đã ném lỗi được tự xác định bên trong tệp service.xml bên trong tệp JAR của mô-đun dịch vụ.
Dường như mô-đun dịch vụ không thể tìm thấy hạt mà nó đã nhập từ mô-đun dao. Rõ ràng là tôi không hiểu điều gì đó ... có vẻ như việc này chỉ nên làm việc?
* Không thể tin rằng tôi lãng phí một ngày vào sự ngu ngốc này * Đó sẽ không phải là lần cuối cùng. Theo kinh nghiệm của tôi, việc xây dựng chức năng tuyệt vời sẽ tốn ít thời gian hơn rất nhiều so với việc theo dõi các lỗi vô tội ngu ngốc. –