java – 从WAR中的其他Maven模块导入Spring bean?

前端之家收集整理的这篇文章主要介绍了java – 从WAR中的其他Maven模块导入Spring bean?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个新的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.显然我不明白的东西……看起来这应该只是工作吗?

最佳答案
我为’org.springframework’启用了DEBUG日志记录,以便查看我是否可以学到任何东西.我发现的是有关创建DAO bean的消息,但也有一条关于它们没有名称或ID的消息.

我检查了文件,他们都有一个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文件命名空间版本.

感谢大家的帮助.不敢相信我浪费了一天这个愚蠢!

猜你在找的Spring相关文章