SpringBoot項目使用外置Tomcat啓動報錯Failed to extract parameter names for org.apache.ibatis.mapping.ResultMap

錯誤信息:

springboot項目打成war包時部署到外部tomcat時報錯,報錯信息如下:

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to bind properties under 'mybatis.configuration.result-maps[0]' to org.apache.ibatis.mapping.ResultMap:

    Reason: Failed to extract parameter names for org.apache.ibatis.mapping.ResultMap(org.apache.ibatis.mapping.ResultMap$1)

Action:

Update your application's configuration

原因分析:

在SpringBoot 2.1.9.RELEASE中不會出現這個問題,高版本中引入了JNDI查詢而出現此問題,因此禁用jndi即可。
SpringBoot啓動時會首先讀取spring.properties配置文件,再去讀取系統環境變量,查找spring.jndi.ignore的值。

解決方法

  1. 在項目resources根目錄下新增spring.properties配置文件,配置文件內容爲:
    spring.jndi.ignore=true
    
    注意配置文件的名稱必須爲spring.properties,原因請參見參考文檔4
  2. Tomcat 啓動時VM Options加上-Dspring.jndi.ignore=true

參考文檔

1.https://github.com/baomidou/mybatis-plus/issues/1608
2.https://github.com/mybatis/spring-boot-starter/issues/387
3.https://github.com/mybatis/spring-boot-starter/issues/350
4.https://blog.csdn.net/qq_30739519/article/details/78536965

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章