2010-11-08 27 views
0

我想問我應該如何加載我的服務類中的bean(在應用程序XML中定義)在Spring應用程序中。我試着用它(和呈三角解決方案)來加載:春天 - 無法加載服務的bean信息

public class MyService { 
    public void myMethod() { 
     ApplicationContext context = new ClassPathXmlApplicationContext("security-config.xml"); 
     LdapPersonDAO ldapPersonDAO = (LdapPersonDAO) context.getBean("ldapPersonDAO"); 
    } 
} 

安全-config.xml中

<bean id="ldapPersonDAO" class="shdb.ldap_sync.dao.LdapPersonDAO"> 
<property name="ldapTemplate" ref="ldapTemplate" /> 
</bean> 

,但沒有解決我的作品。有沒有標準的解決方案?

感謝您的幫助,

回答

0

,嘗試新的ClassPathXmlApplicationContext(「/安全-config.xml文件」),但如果你提供你所得到的錯誤的詳細信息,這將有助於。

此外,你應該避免查找和MyService類應該也應用程序上下文中聲明,並注入聲明ldapPersonDAO。然後,MyService的用戶也將注入它,直到您從應用程序上下文中獲得的應用程序的主要類。

+0

對不起,我沒有提供錯誤信息我以爲我錯了,所以不需要錯誤信息。無論如何,問題仍然存在。我在WEB-INF/spring文件夾中有我的security-config.xml文件,所以我嘗試了所有可能的路徑組合,並且錯誤仍然是相同的 org.springframework.beans.factory.BeanDefinitionStoreException:IOException從類路徑解析XML文檔資源[security-config.xml]; 引起:java.io.FileNotFoundException:類路徑資源[security-config.xml]無法打開,因爲它不存在 有沒有解決方法? – Mateo 2010-11-08 21:59:33

+0

我已經解決了你的建議。我已經將bean正確加載到了我需要的地方(控制器),並且它可以正常工作。我使用了以下代碼: WebApplicationContext webApplicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession()。getServletContext()); LdapPersonDAO ldapPersonDAO =(LdapPersonDAO)webApplicationContext.getBean(「ldapPersonDAO」); – Mateo 2010-11-08 22:23:15