我在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