gpt4 book ai didi

java - 使用正确的配置突然得到 "NoSuchBeanDefinitionException no bean named"

转载 作者:行者123 更新时间:2023-12-02 07:55:33 28 4
gpt4 key购买 nike

我有一个 Java 桌面应用程序,它通过 Hibernate 连接到 MySql 数据库。

我有以下配置文件:

  • pom.xml,我在其中放置了一些内容和数据库配置文件
  • [app_name]_context.xml,我在其中放置主要配置,包括 Bean 和数据源
  • [app_name]_hibernate.cfg.xml,我将映射放到表中

应用程序即将完成,一切都 100% 正常工作,但后来我决定更改配置以创建数据库配置文件(在此之前 pom.xml 不包含任何配置文件)。因此,我在 pom.xml 中创建了配置文件,并从 context.xml 引用了它们。一切正常。然后我希望将 SQL 打印到终端进行调试,但由于某种原因,它没有被打印。所以我改变了数据库配置,直到我得到正确的结果。一切正常。然后我将其更改为 sql-print 更改之前的方式,即之前工作的确切配置,但现在我收到此错误,因为始终存在且从未更改过的 bean。

这里有一些代码可以更好地理解它:

context.xml中的数据源:(${}字符串被过滤并替换为pom.xml中存储的真实值)

<bean id="desenvolvimentoDS" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>org.hibernate.dialect.MySQLDialect</value>
</property>
<property name="url">
<value>${db.mysql.url}</value>
</property>
<property name="username">
<value>${db.mysql.username}</value>
</property>
<property name="password">
<value>${db.mysql.password}</value>
</property>
</bean>

当前使用的配置文件,在 pom.xml 中:

<profile>
<id>HOMOLOGACAO</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profile.group>HOMOLOGACAO</profile.group>
<maven.test.skip>true</maven.test.skip>
<db.show_sql>true</db.show_sql>
<db.format_sql>false</db.format_sql>
<db.mysql.url>[filtered]</db.mysql.url>
<db.mysql.username>[filtered]</db.mysql.username>
<db.mysql.password>[filtered]</db.mysql.password>
</properties>
</profile>

pom.xml 的资源部分,告诉 Spring 将这些 context.xml 字符串过滤为配置文件值:

    <resources>
<resource>
<directory>src/main/resources/configuracao</directory>
<filtering>true</filtering>
</resource>
</resources>

最后,给我错误的 bean:

<bean name="servidorUDP"
class="br.uff.pgci.sgca.gateway.server.ServidorUDP"
scope="singleton"/>

继续,我创建了数据库配置文件来组织配置,来回更改了一些数据库配置,然后突然收到“NoSuchBeanDefinitionException no bean named ServidorUDP”错误。

这可能是由错误的换行符、空格或错误的打开/关闭 xml 标签引起的吗?我很确定情况并非如此,但我们永远不知道......

最佳答案

您将 [app_name]_context.xml 放置在何处?您在 pom 中引入的过滤器是否跳过了 bean 定义 xml?

检查这个maven pom引用http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html ,它可能会给你一些线索。

关于java - 使用正确的配置突然得到 "NoSuchBeanDefinitionException no bean named",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9706554/

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