24-Feb-2023 21:20:39.782 严重 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart 异常将上下文初始化事件发送到类的侦听器实例.[org.springframework.web.context.ContextLoaderListener]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'commonFunction' defined in URL [jar:file:/D:/Users/xu/IdeaProjects/ccd/CCD-web/target/HIUP-CCD_v2.0.4.20_20230224/WEB-INF/lib/XMLBean-Base-2.0.jar!/spring/xmlbeans-spring-base.xml]: Cannot resolve reference to bean 'mecOutorderDao' while setting bean property 'mecOutorderDao'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mecOutorderDao' defined in URL [jar:file:/D:/Users/xu/IdeaProjects/ccd/CCD-web/target/HIUP-CCD_v2.0.4.20_20230224/WEB-INF/lib/image-retrieval-core-2.0.jar!/spring/spring-dao.xml]: Cannot resolve reference to bean 'sqlSessionFactory_report' while setting bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory_report' defined in class path resource [spring-db.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'class path resource [mybatis/oracle/report/mybatis-studylistMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1531)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
解决办法
这是一个 Java 应用程序的异常日志。从日志中可以看到,异常的根本原因是“Content is not allowed in prolog.”,这个错误通常是由于 XML 文件的格式不正确导致的。
具体地,异常的根本原因是在解析名为“mybatis-studylistMapper.xml”的文件时遇到了问题。此文件位于“classpath:mybatis/oracle/report/”目录下。在解析此文件时,SAX 解析器遇到了不在 prolog 中允许的内容。prolog 是 XML 文件的开头部分,用于定义 XML 版本、编码和其他元数据。
因此,可能的原因是在“mybatis-studylistMapper.xml”文件的开头之前存在某些非 XML 内容,例如 BOM(字节序标记)或空格。解决此问题的方法是检查文件是否正确格式化,将 BOM 和其他非 XML 内容从文件中删除,并确保文件以正确的 XML 格式开始。
另外,此异常还导致了其他一些 bean 创建失败的异常。具体来说,“commonFunction” bean 无法创建,因为它依赖于“mecOutorderDao” bean,而“mecOutorderDao” bean 又依赖于“sqlSessionFactory_report” bean。因此,要解决此异常,必须首先解决“sqlSessionFactory_report” bean 的问题。