2012-10-26 88 views
0

我的應用程序上下文看起來likt此,創建bean例外

<bean id="caseTxBo" class="gov.case.rcp.bo.impl.caseTxBoImpl" > 
      <property name="caseTxDao" ref="caseTxDao" /> 
    </bean> 
    <bean id="caseTxDao" class="gov.case.rcp.dao.impl.caseTxDaoImpl" > 
      <property name="sessionFactory" ref="sessionFactory" /> 

動作類獲取這樣的背景下:

ServletContext context = request.getSession().getServletContext(); 
    BeanFactory factory = WebApplicationContextUtils. 
      getRequiredWebApplicationContext(context); 
    CaseTxBOImpl caseTxBo = (

      caseTxBoImpl) factory.getBean("caseTxBo"); 

    List<caseTxPmt> errorVarList =  
    caseTxBo.getcaseTxDao().findAllcaseTx(); 

    model.put("caseTxList", caseTxList); 

BOImpl實現道和DAOImpl實現道:

DaoImpl有實現並返回caseTxList。

,但我得到一個RuntimeException作爲

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'caseTxBo' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Cannot resolve reference to bean 'caseTxDao' while setting bean property 'caseTxDao'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'caseTxDao' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'sessionFactory' of bean class [gov.case.rcp.pp.dao.impl.CaseTxDaoImpl]: Bean property 'sessionFactory' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter? 
follows: 
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275) 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104) 

哪兒我去錯了嗎?

+0

您是否閱讀過整個異常消息(根本原因在其最後)?你不明白的部分信息? – meriton

+0

setter的參數類型是否與getter的返回類型相匹配? 它們都匹配。 – JNPW

回答

4

Bean屬性'sessionFactory'不可寫或具有無效的setter方法。 setter的參數類型是否與getter的返回類型相匹配? 如下: 在org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReferenceBeanDefinitionValueResolver.java:275

該錯誤消息是相當清楚的。打開CaseTxDaoImpl,並確保有一個下面的方法有:

public void setSessionFactory(SessionFactory sessionFactory) { 
    this.sessionFactory = sessionFactory; 
} 

BTW這樣的:

ServletContext context = request.getSession().getServletContext(); 
BeanFactory factory = WebApplicationContextUtils. 
     getRequiredWebApplicationContext(context); 
factory.getBean("caseTxBo") 

很春天的低層次的使用和反模式。你使用任何Web框架?通常他們很好地與Spring集成。

+0

它是hibernatesession工廠嗎?我的DAOImpl擴展了JdbcDaoSupport。我對春季整合很感興趣。我的應用程序遵循struts框架和spring注入bean的集成。它使用JdbcDaoSupport和HibernateDaoSupport ..但是這個DaoImpl使用JdbcDaoSupport。 – JNPW

相關問題