日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中为何输出框会无限输出,MyBatis启动时控制台无限输出日志的原因及解决办法...

發(fā)布時(shí)間:2025/3/12 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中为何输出框会无限输出,MyBatis启动时控制台无限输出日志的原因及解决办法... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

你是否遇到過下面的情況,控制臺(tái)無限的輸出下面的日志:

Logging initialized using ‘class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.

Logging initialized using ‘class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.

Logging initialized using ‘class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.

Logging initialized using ‘class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.

Logging initialized using ‘class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.

這個(gè)錯(cuò)誤只有在和Spring集成的情況下才會(huì)出現(xiàn)。

每次只要出現(xiàn)這個(gè)錯(cuò)誤,我都知道是XML出錯(cuò)了,但是具體是那個(gè)XML還沒法直接確認(rèn),因?yàn)檫@里的日志看不出來任何有用的信息。

想定位這個(gè)錯(cuò)誤,我有一個(gè)常見的方法,就是從程序啟動(dòng)的某一個(gè)入口斷點(diǎn),然后逐步定位這個(gè)錯(cuò)誤。

不過這種方式仍然很麻煩,這里要說的是一種迅速定位解決的辦法,操作起來很簡單。

找到org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory 類,在下面方法:

?

在throw這一行斷點(diǎn)即可,這個(gè)地方是最早捕獲異常的地方,當(dāng)Mapper.xml文件出錯(cuò)的時(shí)候,這里的異常信息如下:

異常信息是很詳細(xì)的,具體異常文字如下:

org.springframework.core.NestedIOException:

Failed to parse mapping resource:

'file [F:\Liu\Git\bhgl\target\Franchisee-1.0\WEB-INF\classes\com\abel533\property\dao\EmployeeMapper.xml]';

nested exception is org.apache.ibatis.builder.BuilderException:

Error creating document instance.

Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允許有內(nèi)容。

打開這個(gè)出錯(cuò)的XML后,發(fā)現(xiàn)一個(gè)很無語的錯(cuò)誤:

不知道什么情況,開頭多了emplo,基本上只要是 XML 中出什么錯(cuò),都是類似的異常信息,一般都是 XML 解析出的錯(cuò)。

還有一個(gè)問題,為什么出錯(cuò)后只能看到無限輸出的一行日志,而看不到這里具體的異常信息呢?

通過追蹤代碼,發(fā)現(xiàn)在org.springframework.beans.factory.support.AbstractBeanFactory類中的方法:

?

這里捕獲異常后,直接return null導(dǎo)致異常被吞。

由于這里是最后一層捕獲異常的地方,而且這個(gè)地方捕獲到的異常范圍會(huì)更廣,因此在這里斷點(diǎn)查看問題也是很不錯(cuò)的選擇,由于這里經(jīng)過多層異常處理,真正的錯(cuò)誤信息隱藏的比較深,如下圖:

看到這兒,相信再遇到這個(gè)問題的時(shí)候應(yīng)該會(huì)很容易解決了。

原文鏈接:http://blog.csdn.net/isea533/article/details/51277786

總結(jié)

以上是生活随笔為你收集整理的java中为何输出框会无限输出,MyBatis启动时控制台无限输出日志的原因及解决办法...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。