Avez-vous rencontré la situation suivante où la sortie illimitée de la console du journal suivant:
Logging initialisé à l'aide de «classe org.apache.ibatis.logging.log4j.log4jimpl».
Logging initialisé à l'aide de «classe org.apache.ibatis.logging.log4j.log4jimpl».
Logging initialisé à l'aide de «classe org.apache.ibatis.logging.log4j.log4jimpl».
Logging initialisé à l'aide de «classe org.apache.ibatis.logging.log4j.log4jimpl».
Logging initialisé à l'aide de «classe org.apache.ibatis.logging.log4j.log4jimpl».
Cette erreur ne se produira que si elle est intégrée au ressort.
Chaque fois que cette erreur se produit, je sais que l'erreur XML se produit, mais le XML spécifique ne peut pas être confirmé directement, car le journal ici ne peut voir aucune information utile.
Si vous souhaitez localiser cette erreur, j'ai une méthode commune, qui est de localiser progressivement cette erreur à partir d'un certain point d'arrêt de l'entrée dans le démarrage du programme.
Cependant, cette méthode est encore très gênante. Ce que je veux parler ici, c'est une solution de positionnement rapide, qui est très simple à utiliser.
Trouvez le org.springframework.beans.factory.support.abstractAutowireCapableBeanfactory Class, dans la méthode suivante:
Protected void AutowireByType (String Beanname, AbstractBeAnDefinition MBD, BeanWrapper BW, MutableProperTyValues PVS) {Cette méthode est d'environ 1200 lignes. Trouvez l'endroit où l'exception de capture dans cette méthode: Catch (BeanSexception ex) {lancez un nouveau non satisfaitdependencyException (mbd.getResourceDeScription (), beanname, propriétéName, ex);}Juste un point d'arrêt sur la ligne de lancer. Cet endroit est le premier endroit pour prendre des exceptions. Lorsque le fichier Mappel.xml erre, les informations d'exception ici sont les suivantes:
Les informations d'exception sont très détaillées, le texte d'exception spécifique est le suivant:
org.springframework.core.netidoException:
Échec de l'analyse de la ressource de cartographie:
'Fichier [f: /liu/git/bhgl/target/franchisee-1.0/web-inf/classes/com/abel533/property/dao/employeemapper.xml]';
L'exception imbriquée est org.apache.ibatis.builder.builderexception:
Erreur de création d'instructions de document.
Cause: org.xml.sax.saxparseException; Livre de linge: 1; ColumnNumber: 1; Le contenu n'est pas autorisé dans la préface.
Après avoir ouvert cette erreur XML, j'ai trouvé une erreur sans voix:
Je ne sais pas quelle est la situation, il y a un emplo au début. Fondamentalement, tant qu'il y a une erreur dans XML, il s'agit d'informations d'exception similaires, et c'est généralement une erreur dans l'analyse XML.
Il y a une autre question, pourquoi ne peut voir qu'une seule ligne de journaux avec une sortie infinie après une erreur, mais ne peut pas voir les informations d'exception spécifiques ici?
En suivant le code, j'ai trouvé la méthode dans l'org.springframework.beans.factory.support.abstractBeanFactory Classe:
Classe protégée <?> GetTypeForFactoryBean (string beanname, rootBeAnDefinition MBD) {if (! mbd.issingleton ()) {return null;} try {factorybean <?> factoryBean = DOGTBEAN (factory_bean_prefix + beanname, factorybean.class, null, true); getTypeForFactoryBean (factorybean);} catch (beanCreationException ex) {// ne peut se produire que lors de l'obtention d'un factorybean.if (logger.isdebugeNabled ()) {logger.debug ("Ignorer la création de bean exception sur le type de type factoryAprès avoir attrapé l'exception ici, Return Null provoque directement l'exception.
Comme il s'agit de la dernière couche où les exceptions sont prises et que les exceptions prises dans cet endroit seront plus larges, c'est aussi un bon choix de voir les problèmes aux points d'arrêt ici. Depuis qu'il a été traité à travers plusieurs couches d'exceptions, les informations d'erreur réelles sont cachées profondes, comme indiqué dans la figure ci-dessous:
Voyant cela, je crois que ce problème sera facilement résolu lorsque je le rencontrerai à nouveau.