¿Ha encontrado la siguiente situación en la que la consola de salida ilimitada del siguiente registro:
Registro inicializado usando el adaptador 'clase org.apache.ibatis.logging.log4j.log4jimpl'.
Registro inicializado usando el adaptador 'clase org.apache.ibatis.logging.log4j.log4jimpl'.
Registro inicializado usando el adaptador 'clase org.apache.ibatis.logging.log4j.log4jimpl'.
Registro inicializado usando el adaptador 'clase org.apache.ibatis.logging.log4j.log4jimpl'.
Registro inicializado usando el adaptador 'clase org.apache.ibatis.logging.log4j.log4jimpl'.
Este error solo ocurrirá si se integrará con Spring.
Cada vez que ocurre este error, sé que el error XML ocurre, pero el XML específico no se puede confirmar directamente, porque el registro aquí no puede ver ninguna información útil.
Si desea localizar este error, tengo un método común, que es localizar gradualmente este error desde un determinado punto de interrupción de entrada en el inicio del programa.
Sin embargo, este método sigue siendo muy problemático. De lo que quiero hablar aquí es una solución de posicionamiento rápido, que es muy simple de operar.
Encuentre el org.springframework.beans.factory.support.AbstractAUTOWIRECAPABLEBENFactory Clase, en el siguiente método:
Void protegido AutowirebyType (String BeanName, AbstractBeanDefinition MBD, BeanWrapper BW, MutablePropertyValues PVS) {Este método es de aproximadamente 1200 líneas. Encuentre el lugar donde la excepción de captura en este método: Catch (Beansexception EX) {Throw New InsatisfiedDependencyException (mbd.getResourceDescription (), BeanName, Propertyname, EX);}Solo el punto de ruptura en la línea de lanzamiento. Este lugar es el primer lugar para atrapar excepciones. Cuando los errores de archivo mapper.xml, la información de excepción aquí es la siguiente:
La información de excepción es muy detallada, el texto de excepción específico es el siguiente:
org.springframework.core.nestedioException:
No se pudo analizar el recurso de mapeo:
'Archivo [f: /liu/git/bhgl/target/franchisee-1.0/webinf/classes/com/abel533/property/dao/emloyeemappers.xml]';
La excepción anidada es org.apache.ibatis.builder.buildeRexception:
Error al crear instancia de documento.
Causa: org.xml.Sax.SaxParseException; Number de lino: 1; columnnumber: 1; El contenido no está permitido en el prefacio.
Después de abrir este error XML, encontré un error sin palabras:
No sé cuál es la situación, hay un Emplo al principio. Básicamente, siempre que haya algún error en XML, es información de excepción similar, y generalmente es un error en el análisis de XML.
Hay otra pregunta, ¿por qué solo puede ver una línea de registros con salida infinita después de un error, pero no puede ver la información de excepción específica aquí?
Siguiendo el código, encontré el método en org.springframework.beans.factory.support.abstractBeanFactory class:
clase protegida <?> getTypeForFactoryBean (String BeanName, rootBeanDefinition mbd) {if (! Mbd.issingleton ()) {return null;} try {factoryBean <?> factoryBean = dogetBean (factory_bean_prefix + beanName, factoryBean.class, null, verdadero); verdadero); getTypeForFactoryBean(factoryBean);}catch (BeanCreationException ex) {// Can only happen when getting a FactoryBean.if (logger.isDebugEnabled()) {logger.debug("Ignoring bean creation exception on FactoryBean type check: " + ex);}onSuppressedException(ex);return null;}}Después de detectar la excepción aquí, el retorno NULL directamente hace que la excepción sea tragada.
Dado que esta es la última capa donde se capturan excepciones, y las excepciones capturadas en este lugar serán más amplias, también es una buena opción ver los problemas en los puntos de descanso aquí. Dado que se ha procesado a través de múltiples capas de excepciones, la información de error real está oculta en profundidad, como se muestra en la figura a continuación:
Al ver esto, creo que este problema se resolverá fácilmente cuando lo encuentre nuevamente.