org.springframework.beans.NotWritablePropertyException解析
阿新 • • 發佈:2019-02-11
今天讓我鬱悶的一個問題,再開發一個***系統的時候,我採用的是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中有說明,希望對你有所幫助!