SpringBoot 文档根元素 "beans" 必须匹配 DOCTYPE 根 "null"

本文解决了在启动SpringBoot项目时使用@ImportResource注解引入application.xml配置文件所导致的异常问题。异常提示为文档根元素beans必须匹配DOCTYPE根null。解决方法是将文件名application.xml更改为其他名称。

启动SpringBoot项目的时候 ,使用@ImportResource(“application.xml”)如出现如下异常

文档根元素 "beans" 必须匹配 DOCTYPE 根 "null"

无论怎么修改文件头部内容都不能去掉这错误,原因是在文件命名上出的问题,是不能取名为application.xml的,把文件名修改成其它就行了。

9月 17, 2025 1:51:05 下午 org.apache.catalina.core.StandardService startInternal 信息: Starting service [Tomcat] 9月 17, 2025 1:51:05 下午 org.apache.catalina.core.StandardEngine startInternal 信息: Starting Servlet engine: [Apache Tomcat/9.0.68] 9月 17, 2025 1:51:05 下午 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring embedded WebApplicationContext 25-09-17 13:51:05,748 INFO ServletWebServerApplicationContext:290 - Root WebApplicationContext: initialization completed in 1285 ms Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter. Registered plugin: 'com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor@1288222a' Parsed mapper file: 'file [D:\javaproject\Vue\music\online_music_server\target\classes\mapper\AdminMapper.xml]' Parsed mapper file: 'file [D:\javaproject\Vue\music\online_music_server\target\classes\mapper\CollectMapper.xml]' 25-09-17 13:51:06,006 WARN AnnotationConfigServletWebServerApplicationContext:591 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'adminController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'adminServiceImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'adminMapper' defined in file [D:\javaproject\Vue\music\online_music_server\target\classes\com\niit\online_music_server\mapper\AdminMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [D:\javaproject\Vue\music\online_music_server\target\classes\mapper\ComsumerMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 72; 文档元素 "mapper" 必须匹配 DOCTYPE "null"。 25-09-17 13:51:06,015 INFO ConditionEvaluationReportLoggingListener:136 - Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 9月 17, 2025 1:51:06 下午 org.apache.catalina.core.StandardService stopInternal 信息: Stopping service [Tomcat] 25-09-17 13:51:06,030 ERROR SpringApplication:835 - Application run failed
最新发布
09-18
### 解决方案 当遇到 **文档元素 "configuration" 必须匹配 DOCTYPE "null"** 的问题时,通常是因为 MyBatis 配置文件 `mybatis-config.xml` 中缺少必要的 XML 声明和 DOCTYPE 定义。以下是具体的解决方案: #### 1. 确保正确的 XML 头部声明 在 `mybatis-config.xml` 文件的最顶部,必须包含以下两行代码来定义 XML 版本和编码格式[^2]: ```xml <?xml version="1.0" encoding="UTF-8"?> ``` #### 2. 添加正确的 DOCTYPE 声明 紧接着上述头部声明之后,需添加如下 DOCTYPE 声明以指定 MyBatis 配置文件所遵循的标准[^3]: ```xml <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> ``` 此部分的作用是指定该配置文件使用的 DTD(Document Type Definition),从而验证其结构是否合法。 #### 3. 检查 `<configuration>` 标签的存在性 确保整个 `mybatis-config.xml` 文件的内容被包裹在一个名为 `<configuration>` 的标签中。例如: ```xml <configuration> <!-- 配置内容 --> </configuration> ``` 如果缺失或拼写错误,则会引发类似的解析异常[^1]。 --- ### 示例完整的 `mybatis-config.xml` 文件 下面是一个标准的 `mybatis-config.xml` 文件模板,供参考: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties resource="db.properties"/> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/example/mapper/UserMapper.xml"/> </mappers> </configuration> ``` --- ### 对于其他可能的错误情况 除了 `mybatis-config.xml` 文件外,还可能存在类似问题的情况,比如 Mapper 文件 (`*.xml`) 或 Spring 配置文件 (`applicationContext.xml`/`spring-beans.xml`)。对于这些场景,可以采取以下措施: #### Mapper 文件 (`.xml`) 如果报错提示涉及 `mapper` 节点,则需要确认对应的 Mapper 文件是否有正确的头部声明和 DOCTYPE 定义[^4]: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.mapper.UserMapper"> <!-- SQL 映射语句 --> </mapper> ``` #### Spring 配置文件 如果是 SSM 框架下的 Spring 配置文件出现问题,则需要检查是否存在类似于以下的 DOCTYPE 定义[^5]: ```xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- Bean 配置 --> </beans> ``` --- ### 总结 通过补充正确的 XML 头部声明、DOCTPYE 定义以及确保节点名称无误,能够有效解决此类问题。务必仔细核对每一份 XML 文件的语法规范性和完整性。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值