(已解決)確定mapper配置無誤,且配置檔案無誤, 執行無誤 出現org.apache.ibatis.binding.BindingException: Invalid bound statemen
(已解決)確定mapper配置無誤,且配置檔案無誤, 執行無誤 出現org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 解決方案 – 常見於多模組服務部署下(適用於一個Tomcat例項部署情況)
如果著急修改錯誤 直接看程式碼部分哦
故事回放
今天又是老司機翻車的一天: 最近在做一個基於Maven多模組專案, 依仗著自己多年橫趟單模組實現SSM的經歷, 覺得多模組僅僅就是1 + 1 = 2的問題, 哪層料想, 這樣天真的想法被現實一頓毒打
拿著以往的配置, 在maven的各個模組一頓CV操作, 是真的香; 只可恨maven看不慣你這麼舒服 非要搞你心態:
好不容易做完一個業務邏輯,準備啟動部署測試, 整個過程一氣呵成, 沒有任何錯誤 非常順利, 這個順利甚至讓我以為自己已經是大佬了嗎(居然可以一次性部署成功)
開啟postMan興高采烈在url上一頓準備測試, 心中早已預判了點下send按鈕的出現喜悅畫面已經想好如何吹逼自己牛b的時候.
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
當頭棒喝 (藍瘦香菇)
本能地以為就是自己那裡CV操作有誤(還沉浸在自己一統單模組部署ssm
的世界裡, 無法自拔) 1個鐘頭過去了,沒有任何進展 於是乎打算一一對比配置檔案 甚至還一一對應mapper
檔案,就這樣 2個鐘頭過去了仍然解決不了, 心態開始崩了 終於放下最後的倔強(我是大佬, 我可以自己解決的) 求助度娘
結果都在說要麼是配置檔案寫錯了, 要麼包匯入錯了 要麼mapper檔案(初學者必踩)寫錯了 總之搜了一圈大同小異, 沒有實質進展
後來我開始轉而去找其他人做的多模組專案 對比Maven配置檔案(也許是出於經驗, 我本能的想到多模組下maven的特殊性可能會出現一些問題) 終於在一個大佬的配置中發現了 一個不起眼的引數配置
<filtering>true</filtering>
為了便於理解我貼出它的精確位置
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<filtering>true</filtering>
</resource>
起初我沒太在意這個東西, 因為自己曾經也用過maven部署web專案 沒有加入過這個配置 也能訪問 所以沒怎麼care, 後來實在是沒轍了 就死馬當活馬醫,
結果是加入後瞬間起飛 : 一方面感動自己 一方面懵逼良久
究其原因
首先這個引數的含義是: 啟動配置檔案中的**${}**過濾 比如我們在配置檔案常常定義一些引數 最常見就是db.properties的驅動引數
你在spring的配置檔案中使用時是不是採用**${}**進行訪問 它的作用就是開啟這個符號的識別(預設是關閉的)
那為啥以前不用配置 也能正常訪問?
以下內容為筆者推斷不具備真實性, 請慎重考慮
-
我首先想到以前我們處理的專案就只有一個web模組 也就是說所有有關的配置檔案都在一起, 那麼maven完全可以基於單模組自動識別 同一個resource下的資源
-
而多模組下, 我們有好幾個web模組也就是說會有多個resource目錄 那maven就無法判斷了(詳見註解)如果你用${}去訪問資源 那麼到底訪問那一個資源呢(比如同時依賴db.properties進行資料庫的訪問) 所以maven在開啟了pom.xml的一個引數配置
filting
如果顯示指定為true
那麼肯定是訪問當前模組的資源目錄注意:這裡無法判斷是指 在同一個Tomcat環境下 部署多個war 或者說多模組啟動都是基於一個Tomcat例項 如果你是把多模組部署分別在不同的tomcat裡那麼 本文自動失效
以上就是筆者的大膽推論, 至於驗證就留待以後解決,如果各位童鞋有確定的想法可以在評論留言哦!
彩蛋
有沒有童鞋還不會配置tomcat同時部署多個war或者雖然你部署了多個但是隻能啟動一個吶?
原因很簡單: 看截圖哦
看懂了嗎 現在可以啟動了 進行的玩耍你的多模組專案吧!
相關文章
- MyBatis繫結錯誤:org.apache.ibatis.binding.BindingException:Invalid bound statement (not found)MyBatisApacheException
- mybatis配置時出現org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)MyBatisApacheException
- 解決org.apache.ibatis.binding.BindingException: Invalid boundApacheBATException
- 電腦dns配置錯誤無法上網怎麼辦 dns配置錯誤不能上網DNS
- mybatis配置執行報出Caused by: org.apache.ibatis.binding.BindingException:相關錯誤解決或者空指標異常MyBatisApacheException指標
- win10系統Rstudio無法啟動或執行出現錯誤的解決步驟Win10
- Win7 IIS7 配置錯誤由於許可權不足而無法讀取配置檔案的解決辦法Win7
- dns配置錯誤網頁打不開 電腦dns配置錯誤無法上網怎麼辦DNS網頁
- win10ip地址配置錯誤網路無法連線怎麼辦 ip地址配置錯誤網路無法連線的方法Win10
- steam確認錯誤執行此操作時出現問題怎麼解決
- Windows 10安裝錯誤:0x80300024無法安裝到該盤且無法新建分割槽 & 格式化錯誤及解決方案Windows
- Android執行出現android Installation failed due to invalid URI! 錯誤處理AndroidAI
- .gitignore檔案配置以及gitee提交報Push rejected...錯誤解決Gitee
- 解決properties、xml等配置檔案無法找到問題XML
- win10系統無法執行掃描程式提示scanner錯誤怎麼解決Win10
- hadoop(二)—hadoop配置、執行錯誤總結Hadoop
- win10誤刪登錄檔無法開機怎麼辦 恢復誤刪登錄檔的解決方法Win10
- mybatis-plus自定義mapper報org.apache.ibatis.binding.BindingException: Invalid bound statement(not found)MyBatisAPPApacheException
- IDEA解決Fatal error compiling: 錯誤: 無效的目標發行版:1.11IdeaError
- 執行ng serve出現無法載入檔案ng.ps1的解決方法
- iis7.5錯誤 配置錯誤
- [BUG反饋]1.1版本錯誤,新建模型,無法使用,出現SQLSTATE[23000]:錯誤模型SQL
- Steam錯誤程式碼138怎麼辦?無法訪問社群提示138錯誤解決方法
- yml 配置檔案提示錯誤mapping values are not allowed in this contextAPPContext
- 被誤刪的檔案正確處理方法,快速找回誤刪的檔案
- win10提示由於裝置錯誤,無法執行此項請求怎麼解決Win10
- win7系統無法在AE渲染寫入檔案提示錯誤-1610153459的解決方法Win7
- iptables配置資訊被誤刪瞭解決方法
- 配置微信公眾號,token錯誤解決
- 記錄一次根據錯誤資訊無法定位錯誤的錯誤
- mysql執行函式出現1418錯誤MySql函式
- Ubuntu boot分割槽檔案誤刪,系統無法啟動_恢復Ubuntuboot
- pyinstaller 打包後讀取 ini 配置檔案路徑錯誤,怎麼定位配置檔案
- 解決安裝LR後提示內部出現錯誤,無法建立資料夾的問題
- 寶塔皮膚安裝配置檔案有錯誤
- standby新增檔案錯誤的解決方法
- 一次webapck4 配置檔案無效的解決歷程Web
- steam商店錯誤程式碼-118解決方法介紹 steam商店無法登陸解決(無需加速器)