次のログのコンソール無制限の出力が次の状況に遭遇しましたか。
'class org.apache.ibatis.logging.log4j.log4jimpl'アダプターを使用して初期化されたロギング。
'class org.apache.ibatis.logging.log4j.log4jimpl'アダプターを使用して初期化されたロギング。
'class org.apache.ibatis.logging.log4j.log4jimpl'アダプターを使用して初期化されたロギング。
'class org.apache.ibatis.logging.log4j.log4jimpl'アダプターを使用して初期化されたロギング。
'class org.apache.ibatis.logging.log4j.log4jimpl'アダプターを使用して初期化されたロギング。
このエラーは、Springと統合されている場合にのみ発生します。
このエラーが発生するたびに、XMLエラーが発生することはわかっていますが、ここのログに有用な情報が表示されないため、特定のXMLを直接確認できません。
このエラーを見つけたい場合は、一般的な方法があります。これは、プログラムスタートアップの特定のエントリブレークポイントからこのエラーを徐々に見つけることです。
ただし、この方法はまだ非常に面倒です。ここで話したいのは、操作が非常に簡単な迅速な位置決めソリューションです。
org.springframework.beans.factory.support.abstractautowirecapablebeanfactoryクラスを次の方法で見つけます。
保護されたvoid autowireBytype(String BeanName、AbstractBeanDefinition MBD、BeanWrapper BW、MutablePropertyValues PVS){この方法は約1200行です。この方法のキャッチ例外がある場所を見つけます:catch(beansexception ex){新しい不満の依存exception(mbd.getresourcedesscription()、beanname、propertyname、ex);}スローラインのブレークポイントだけ。この場所は、例外をキャッチする最初の場所です。 mapper.xmlファイルエラーの場合、ここの例外情報は次のとおりです。
例外情報は非常に詳細で、特定の例外テキストは次のとおりです。
org.springframework.core.nestedioexception:
マッピングリソースの解析に失敗しました:
'ファイル[f:/liu/git/bhgl/target/franchisee-1.0/webinf/classes/com/abel533/property/dao/employeemapper.xml]';
ネストされた例外はorg.apache.ibatis.builder.builderexceptionです。
ドキュメントインスタンスの作成エラー。
原因:org.xml.sax.saxparseexception; LinEnumber:1; columnNumber:1;序文ではコンテンツが許可されていません。
このエラーXMLを開いた後、私は言葉のないエラーを見つけました:
状況が何であるかはわかりませんが、最初はEmploがあります。基本的に、XMLにエラーがある限り、それは同様の例外情報であり、通常はXML解析のエラーです。
別の質問があります。エラー後に無限出力を持つログの1行しか表示されないのに、ここで特定の例外情報を見ることができないのはなぜですか?
コードに従うことで、org.springframework.beans.factory.support.abstractbeanfactoryクラスでこの方法を見つけました。
Protected Class <? getTypeforfactorybean(Factorybean);} catch(beancreationexception ex){// factorybean.if(logger.isdebugenabled()){ogger.debug( "Factorybeanタイプチェックに関するBean Creation Exceptionを無視することを無視する);ここで例外をキャッチした後、nullを返すと、例外が飲み込まれます。
これは例外がキャッチされている最後のレイヤーであり、この場所で捉えられた例外がより広くなるため、ここでブレークポイントで問題を表示することも良い選択です。以下の図に示すように、実際のエラー情報は複数の例外の層を通じて処理されているため、実際のエラー情報は深く隠されています。
これを見て、私は再び遭遇すると、この問題は簡単に解決されると思います。