困擾多時的難題:Caused by: org.springframework.beans.NotWritablePropertyException
阿新 • • 發佈:2018-12-09
開始學習Spring框架,嘗試使用做一個使用者登入,一直報出異常,如下:
Caused by: org.springframework.beans.NotWritablePropertyException
百度摸索許久,終於弄明白了一點,最終也解決,所以來分享一下,供有需要的朋友參考,如有不對的地方歡迎評論指正!
控制檯日誌中提示如下資訊:
這裡表示username渠道了當前電腦系統的使用者名稱,Administrator就是當前電腦使用者名稱
為什麼會找到當前電腦系統的使用者名稱呢?
是因為在xml中用了username,但是沒有配置一個資訊,看下圖:
db.properties檔案中資訊:
xml配置檔案中資料來源<bean>中資訊:
xml檔案中在<context:property-placeholder>中沒有寫system-properties-mode屬性的話,預設是ENVIRONMENT(系統環境),所以會找到電腦使用者名稱,設定成FALLBACK(為什麼設定成這個呢?我還不太清除,查了下好像是說tomcat伺服器3.1後不可以,需要fallback???有懂的希望告知一下)
另外過程中在控制檯也可能會出現如下問題:
關於這個也研究了下,分享一下:
因為將name設定成username,但是在ComboPooledDataSource 的父類 AbstractComboPooledDataSource這個類中的get和set方法字尾名是user,所以它不認識username或者其他的,所以大家還是設定成user!
以上就是本次小嚐試中出現的bug,然後研究解決的,有一點點小小成就感,分享給與需要的朋友!
路漫漫其修遠兮,吾將上下而求索!!!
java之路繼續加油!