Spring: Document root element "beans", must match DOCTYPE root "null

简介:


今天在项目中出现“Document root element "beans", must match DOCTYPE root "null”, 原来运行好好的代码,为什么这种问题呢? 根据提示,貌似是dtd或者schema的问题, 也确实是它的问题,但是分析过程却是这样的。

 问题分析过程:

 思考1、自己新加入了什么依赖呢? 加了如下的依赖:

 
  1. <dependency> 
  2.       <groupId>com.alibaba.external</groupId> 
  3.       <artifactId>sourceforge.spring.aop</artifactId> 
  4.       <version>2.0.7</version> 
  5.     </dependency> 

是2.0版本以上的版本啊,这能有什么问题?

思考2:是不是spring配置文件的格式出现了问题呢?

  拷贝了原来运行良好的文件头部进行替换,加上了“<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">”,但是问题依然没有解决。 替换的头部如下:

 
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 

或者

 
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2.  
  3. <beans xmlns="http://www.springframework.org/schema/beans" 
  4.             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  5.             xmlns:aop="http://www.springframework.org/schema/aop" 
  6.             xmlns:tx="http://www.springframework.org/schema/tx" 
  7.             xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd 
  8.                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd 
  9.                      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> 

思考3:spring的依赖问题

在思考1中提到是使用的2.0.7版本,仔细查看依赖关系之后发现,该版本使用了sourceforge.spring的依赖。真是晕倒, 也不知道是同事在加入仓库的时候搞错了还是spring自身的依赖的时候版本搞错了。

分析好原因之后则做及时调试依赖

 

后来在spring forum上发现了正解:

You have the wrong xml configuration for the version of spring.
1.x use DOCTYPE
2.x use schema
You must have 1.x in the classpath.
引自http://forum.springframework.org/showthread.php?t=37883
spring 1.x 使用DOCTYPE,而2.x是用schema,

 




本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/564861,如需转载请自行联系原作者  

 

相关文章
|
5月前
|
XML Java 数据格式
编织Spring魔法:解读核心容器中的Beans机制【beans 一】
编织Spring魔法:解读核心容器中的Beans机制【beans 一】
91 0
|
2月前
|
NoSQL Java Redis
【Azure Spring Cloud】Java Spring Cloud 应用部署到Azure上后,发现大量的 java.lang.NullPointerException: null at io.lettuce.core.protocol.CommandHandler.writeSingleCommand(CommandHandler.java:426) at ... 异常
【Azure Spring Cloud】Java Spring Cloud 应用部署到Azure上后,发现大量的 java.lang.NullPointerException: null at io.lettuce.core.protocol.CommandHandler.writeSingleCommand(CommandHandler.java:426) at ... 异常
|
4月前
spring-boot报错循环注入报错:has been injected into other beans
spring-boot报错循环注入报错:has been injected into other beans
242 3
|
5月前
|
应用服务中间件
Spring-boot启动失败 Unregistering JMX-exposed beans on shutdown 异常处理
Spring-boot启动失败 Unregistering JMX-exposed beans on shutdown 异常处理
280 0
|
5月前
|
Java 测试技术 Maven
Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]
Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]
124 0
|
5月前
|
Java Spring 容器
深入理解BeanDefinition和Spring Beans
本文深入探讨了Spring框架中的BeanDefinition和Spring Beans。BeanDefinition是Bean的元数据,包含类名、作用域、构造函数参数和属性值等信息。Spring Beans是根据BeanDefinition实例化的对象。文章详细阐述了BeanDefinition的属性,如类名、作用域(如单例和原型)及构造函数和属性值。此外,还介绍了如何使用BeanDefinition动态注册、延迟加载和实现依赖注入。通过示例代码,展示了如何创建和自定义BeanDefinition以满足特定需求。理解BeanDefinition有助于更高效地开发和维护Spring应用程序。
79 0
|
5月前
|
Java Spring
flowable 监听器无法获取spring bean ,自动注入bean为null,解决方案
flowable 监听器无法获取spring bean ,自动注入bean为null,解决方案
|
XML 存储 设计模式
Spring高手之路11——BeanDefinition解密:构建和管理Spring Beans的基石
本文对BeanDefinition进行全面深入的探讨,涵盖BeanDefinition的接口方法、主要信息、类型以及生成过程等方面内容。旨在帮助读者全面理解BeanDefinition的各方面知识,并能够熟练应用。文章通俗易懂,具有很强的指导意义。
152 0
Spring高手之路11——BeanDefinition解密:构建和管理Spring Beans的基石
|
5月前
|
JSON 前端开发 Java
【SpringBoot实战专题】「开发实战系列」全方位攻克你的技术盲区之Spring定义Jackson转换Null的方法和实现案例
【SpringBoot实战专题】「开发实战系列」全方位攻克你的技术盲区之Spring定义Jackson转换Null的方法和实现案例
101 0
|
Java Spring 容器
什么是Spring beans?
什么是Spring beans?
60 0