`
xiao_yi
  • 浏览: 407740 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate-mapping-3.0.dtd问题.

阅读更多

Hbm.xml文件中引用了hibernate-mapping-3.0.dtd,
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

当机器不能上网的时候程序运行就出现错误,说找不到hibernate-mapping-3.0.dtd,这个文件可以放到本地吗?放到什么位置?

 

Hibernate 在load mapping文件的时候根本就没有连到http://hibernate.sourceforge.net去,而是在本地classpath的org/hibernate/目录去找DTD文件,所以根本不存在不能上网就找不到DTD文件的问题啊!
只要你的hibernate.jar包的org/hibernate/目录包含了DTD文件就OK了啊.
hibernate默认用DTDEntityResolver作为EntityResolve
其load DTD文件的方法如下:

代码
 

public InputSource resolveEntity (String publicId, String systemId) {
if ( systemId!=null && systemId.startsWith(URL) ) {
log.debug("trying to locate " + systemId + " in classpath under org/hibernate/");
// Search for DTD
String path = "org/hibernate/" + systemId.substring( URL.length() );
InputStream dtdStream = resourceLoader==null ?
getClass().getResourceAsStream(path) :
resourceLoader.getResourceAsStream(path);
if (dtdStream==null) {
log.debug(systemId + " not found in classpath");
return null;
}
else {
log.debug("found " + systemId + " in classpath");
InputSource source = new InputSource(dtdStream);
source.setPublicId(publicId);
source.setSystemId(systemId);
return source;
}
}
else {
// use the default behaviour
return null;
}
}


当然,如果你是要自己写函数来调用hbm.xml文件
那就像cm4ever说的那样
SAXReader reader=new SAXReader();
reader.setEntityResolver(new DTDEntityResolver());
就可以了:)

解决方案:
分享到:
评论

相关推荐

    hibernate-configuration-3.0.dtd、hibernate-mapping-3.0.dtd

    《深入理解Hibernate配置与映射:hibernate-configuration-3.0.dtd与hibernate-mapping-3.0.dtd解析》 在Java世界里,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而`hibernate-...

    hibernate-mapping-3.0.dtd

    hibernate-mapping-3.0.dtd 配置后,就会在xml中进行提示

    Hibernate 离线的配置方法(hibernate-mapping-3.0.dtd)

    因为Hibernate在读出hbm.xml文件时需要通过网络读取到hibernate-mapping-3.0.dtd 文件。 如果没有网络不能正常工作。 所以提供上述文件。 以及hibernate-mapping-3.0.dtd,hibernate-configuration-3.0.dtd提供下载...

    hib-mapping-3.0.dtd

    3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd 解决hibernate配置无自动提示的问题...

    hibernate-dtd

    1. `hibernate-mapping-3.0.dtd`:这是Hibernate 3.0版本的映射文件DTD,用于验证`*.hbm.xml`文件的语法。 2. `hibernate-configuration-3.0.dtd`:这个DTD定义了`hibernate.cfg.xml`文件的结构,确保配置文件的正确...

    hibernate。hbm.xml配置详解

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&gt; &lt;hibernate-mapping package="包名"&gt; 类名" table="表名"&gt; &lt;!-- 主键配置 --&gt; &lt;!-- 普通属性...

    hibernate-release-5.0.7.Final.zip官方

    DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"&gt; &lt;hibernate-configuration&gt; &lt;session-factory&gt; ...

    Hibernate5.0.7的dtd约束

    接下来,我们转向`hibernate-mapping-3.0.dtd`,它是Hibernate实体映射文件的DTD。映射文件是将Java类与数据库表关联起来的关键,通过这些映射,Hibernate能够理解如何将对象状态转化为数据库记录,反之亦然。在这个...

    hibernate 3.0 dtd

    在Hibernate 3.0中,有两个重要的DTD文件:`hibernate-configuration-3.0.dtd`和`hibernate-mapping-3.0.dtd`,它们定义了Hibernate配置文件和映射文件的结构。 `hibernate-configuration-3.0.dtd` 是Hibernate配置...

    hibernate的DTD文件,三个文件都有

    hibernate开发时,必需用到的DTD文件,该压缩包含有所需的三个文件:hibernate.properties,hibernate-configuration-3.0.dtd,hibernate-mapping-3.0.dtd。

    hibernate3.0 dtd约束文件

    在本案例中,我们讨论的是与Hibernate配置相关的两个DTD文件:`hibernate-configuration-3.0.dtd`和`hibernate-mapping-3.0.dtd`。 `hibernate-configuration-3.0.dtd`文件是用于定义`hibernate.cfg.xml`配置文件的...

    hibernate-dtd-xsd约束文件

    在Hibernate中,`hibernate-mapping-3.0.dtd`和`hibernate-configuration-3.0.dtd`是针对Hibernate 3.0版本的配置文件的DTD文件。`hibernate-mapping-3.0.dtd`主要用于定义实体类(Entity)与数据库表之间的映射关系...

    hibernate的dtd 包含hibernate.properties

    在这个主题中,我们主要关注的是Hibernate的配置文件`hibernate.properties`以及它的DTD(Document Type Definition)文件,包括`hibernate-configuration-3.0.dtd`和`hibernate-mapping-3.0.dtd`。 首先,`...

    hibernate的dtd文件

    我们来深入探讨一下`hibernate.properties`、`hibernate-configuration-3.0.dtd`以及`hibernate-mapping-3.0.dtd`这三个关键文件及其在Hibernate中的作用。 首先,`hibernate.properties`是Hibernate的配置文件,它...

    hibernate需要的2个DTD文档

    `hibernate-mapping-3.0.dtd`用于描述实体类和数据库表之间的映射关系,而`hibernate-configuration-3.0.dtd`则负责设定Hibernate运行时的环境参数。这两个文件是Hibernate能够正常工作的基础,它们为开发者提供了一...

Global site tag (gtag.js) - Google Analytics