1. 程式人生 > >org.springframework.beans.NotWritablePropertyException解析

org.springframework.beans.NotWritablePropertyException解析

今天讓我鬱悶的一個問題,再開發一個***系統的時候,我採用的是struts2+Hibernate3+spring2.5進行開發的,但是就莫名奇妙的出現了一個錯誤:bug的資訊如下:

org.springframework.beans.NotWritablePropertyException:
Invalid property 'tStruct' of bean class [com.ac.equipment.dm.Bus]:
Bean property 'tStruct' is not writable or has an invalid setter method.
Did you mean 'tstruct'?
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:805)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:636)
at com.ac.input.dao.impl.BaseDaoImpl.processObject(BaseDaoImpl.java:332)
at com.ac.input.dao.impl.BaseDaoImpl$3.processRow(BaseDaoImpl.java:263)
at org.springframework.jdbc.core.JdbcTemplate$RowCallbackHandlerResultSetExtractor.extractData(JdbcTemplate.java:1309)
at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:423)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:371)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:433)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:437)
at com.ac.input.dao.impl.BaseDaoImpl.getObjects(BaseDaoImpl.java:252)
.......................................... 

其實我的錯誤原因是在我的Bean中有一個 private String tStruct的屬性,我在對應的setter和getter方法中,我是這樣寫:

    public void setTStruct(String tStruct){------------}
    public String getTStruct(){-------------}

其實當自動生成程式碼的時候並不是這樣 ,而是settStruct() gettStruct();所以一定要注意第一個單詞的大小寫的問題 。

還有在使用hibernate+spring整合開發的時候,一定要注意注入的單詞大小寫的規範,這一點也在我其他的blog中有說明,希望對你有所幫助!