我在Java的桌面应用程序连接到通过Hibernate MySQL数据库。突然变得“NoSuchBeanDefinitionException没有名为豆”用正确的CONFIGS
我对配置下列文件:
- pom.xml的,在这里我把一些东西,数据库配置文件
- [APP_NAME] _context.xml,在这里我把主要的配置,包括豆类与数据源
- [APP_NAME] _hibernate.cfg.xml,在这里我把映射到表
的应用程序是几乎完成,一切工作100%,但后来我决定CH通过配置来创建DB配置文件(在此之前,pom.xml不包含任何配置文件)。 所以我在pom.xml中创建了配置文件,并从context.xml中引用它们。一切正常。然后,我想将SQL打印到终端进行调试,出于某种原因,它没有被打印。所以我改变了数据库配置,直到我找对了。一切正常。然后,我把它改成它是SQL打印的变化,这是以前工作的确切配置之前的方式,但现在我得到这个错误的豆,这是永远存在的,并没有改变。
下面是一些代码,以便更好地理解它:
在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 name="servidorUDP"
class="br.uff.pgci.sgca.gateway.server.ServidorUDP"
scope="singleton"/>
恢复,我创建了数据库配置文件,组织结构,改变了一些数据库配置来回,突然我m得到“NoSuchBeanDefinitionException没有名为ServidorUDP的bean”错误。
难道这被放错位置的换行符,或空格,或错误打开/关闭XML标签引起的?我敢肯定这是不是这样,但我们永远不知道...
哦,资源目录错了,我的经理告诉我把“src/main/resources/configuracao”而不是“src/main/resources”,可能这就是破坏它的原因。这很有趣,因为他是知道Spring,Hibernate和所有这些东西的人,我几乎只是复制和粘贴hibernate的东西。谢谢! – 2012-03-14 17:34:36
很酷。很好,你解决了这个问题。 – raddykrish 2012-03-14 17:37:53