我有一个新的Web应用程序,作为多模块Maven项目的一部分打包为WAR.此WAR的applicationContext.xml引用从“service”模块导入的bean,后者又从“dao”模块导入bean. applicationContext.xml中的import语句如下所示:
而service.xml文件中的那个看起来像这样:
Spring STS和Eclipse都没有在我的bean文件中显示任何警告或错误.我在整个地方引用了进口的豆子. Maven构建工作正常,DAO集成测试全部通过(他们使用bean).我还没有任何服务集成测试.
但是当我在Jetty中启动WAR时,我收到一个错误:
Error creating bean with name 'securityService'
Cannot resolve reference to bean 'userDAO' while setting constructor argument
所有导入的bean XML文件都可以在WEB-INF / lib目录中的各自JAR文件中找到.实际上,抛出错误的服务bean本身是在服务模块的JAR文件内的service.xml文件中定义的.
显然,服务模块找不到它从dao模块导入的bean.显然我不明白的东西……看起来这应该只是工作吗?
我检查了文件,他们都有一个id.那是什么?我检查XML命名空间并看到:
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
并注意到它已经过时了(我正在使用Spring 3.0.2)并将其更改为:
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
一旦我改变它,Spring立即就错误定义的bean(但从未明显使用过)抛出了六个错误.一旦我修复了这些错误,一切都工作了.我已经通过整个系统检查Spring XML文件命名空间版本.
感谢大家的帮助.不敢相信我浪费了一天这个愚蠢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。