[英]No bean named [x] is defined
我一天中大部分時間都在尋找和辛苦工作,以使某些東西能夠正常工作。 情況如下:
我正在為我們正在使用的工具進行審計跟蹤。 此工具用於編輯信息(例如網站上的文本)。 現在一切正常,但是有一個小問題:現在我正在將用戶數據(用戶名,密碼,ipAddress)存儲在@ context-info(MSSQL)中。 只要一次有一個用戶登錄,此方法就可以正常工作,但是這種情況很少發生
例:
一個會話范圍的Bean,用於存儲本地會話數據,然后將每個數據庫查詢的參數通過攔截器傳遞給上下文信息。
我目前正在遵循該指南: Spring Bean Scopes-Tutorialspoint,用於獲取會話范圍的Bean。 我在support-servlet.xml中定義了以下內容(這是我們定義bean的地方):
<!-- Session Beans -->
<bean id="helloWorld" class="com.lcmg.ticket.support.service.HelloWorld" scope="session">
</bean>
.java文件已從教程中獲取,並且可以進行到一定程度。 例如:
ApplicationContext context = new ClassPathXmlApplicationContext("support-servlet.xml");
給我問題,直到我將參數更改為
("classpath*:support-servlet.xml")
然后這發生了..
問題出在這里:
HelloWorld hwA = (HelloWorld)context.getBean("helloWorld");
如果我調試並越過這條線, 則登錄該工具后,我的臉上就會拋出一個名為'helloWorld'的No bean定義的異常。 我在谷歌上搜索,修修補補和擺弄,到今天結束時,我仍然沒有解決方案。
因此,問題是:如何使該會話bean工作?
希望我提供了足夠的信息,但請隨時詢問您是否需要更多信息。
所以我擺弄了一些,然后這樣做:
Bean定義已移至其他.xml(我們顯然將applicationContext.xml與其他scope =“ session” Bean一起使用,現在看起來像這樣(我也更改了實現的名稱,等等):
<bean id="auditUser" class="com.lcmg.ticket.support.service.model.AuditUser" scope="session">
</bean>
我轉儲了整個applicationContext context ..位,而是將bean映射到class-bean,如下所示:
<bean name="/historyList" class="com.lcmg.ticket.support.web.controller.HistoryListController">
/*Other-for-this-example-useless properties*/
<property name="auditUser" ref="auditUser"/>
</bean>
然后,我可以在代碼中創建一個變量auditUser ,創建一個setter,然后執行此操作:
auditUser.setSessionUser(sessionUser);
auditUser.setPassword(command.getPassword());
現在就可以了。 沒有更多的錯誤,每當我從auditUser調用某些內容時,整個會話期間都是相同的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.