配置Hibernate时遇“禁用下载外部资源”错误求助
解决Hibernate配置文件引入DTD时的“Downloading from external resources is disabled”错误
下面是几种实用的解决方法,按需选择:
方法1:使用本地DTD文件映射
- 从Maven本地仓库找到
hibernate-core.jar,解压后提取对应版本的DTD文件(比如org/hibernate/hibernate-configuration-5.6.dtd,版本号需和你的Hibernate依赖一致) - 将提取的DTD文件放到项目本地目录,比如
src/main/resources/dtds - 在IDE中配置DTD映射:
- IntelliJ IDEA:打开
Settings→Languages & Frameworks→Schemas and DTDs,点击加号,在URI栏填入配置文件里写的DTD远程地址(例如http://www.hibernate.org/dtd/hibernate-configuration-5.6.dtd),File栏选择本地存放的DTD文件路径 - Eclipse:打开
Window→Preferences→XML→XML Catalog,点击Add,选择File System找到本地DTD,Key type选URI,Key填入远程DTD地址,保存后生效
- IntelliJ IDEA:打开
方法2:允许IDE下载外部资源
- IntelliJ IDEA:打开
Settings→Languages & Frameworks→XML→XML Files→External Resources,勾选Allow download of external resources,重启IDE后重新加载配置文件 - Eclipse:打开
Window→Preferences→XML→XML Editors,确保Enable validation和Allow downloading of external resources选项被勾选
方法3:修改DTD引用为classpath路径
直接在hibernate.cfg.xml里修改DOCTYPE声明,让IDE从Maven依赖的jar包中读取DTD,无需远程下载:
<!DOCTYPE hibernate-configuration SYSTEM "classpath:/org/hibernate/hibernate-configuration-5.6.dtd">
注意替换版本号为你使用的Hibernate版本对应的DTD版本。
方法4:检查Maven依赖配置
确保pom.xml中正确引入了Hibernate核心依赖,IDE会自动识别jar包内的DTD:
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.6.14.Final</version> <!-- 替换为你的Hibernate版本 --> </dependency>
执行mvn clean install刷新依赖后,IDE通常会自动关联DTD。
内容的提问来源于stack exchange,提问作者Pushp Raj Thakur
相关产品推荐
相关产品推荐

