gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:04:09 25 4
gpt4 key购买 nike

我有一个新的 Web 应用程序,它作为多模块 Maven 项目的一部分打包为 WAR。此 WAR 的 applicationContext.xml 引用从“service”模块导入的 beans,后者又从“dao”模块导入 beans。 applicationContext.xml 中的导入语句如下所示:

<import resource="classpath*:service.xml" />

service.xml 文件中的内容如下所示:

<import resource="classpath*:dao.xml" />

Spring STS 和 Eclipse 都没有在我的 bean 文件中显示任何警告或错误。我到处都引用了进口 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 文件命名空间版本。

感谢大家的帮助。不敢相信我在这种愚蠢的事情上浪费了一天!!

关于java - 从 WAR 中的其他 Maven 模块导入 Spring bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3781755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com