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配置与映射:hibernate-configuration-3.0.dtd与hibernate-mapping-3.0.dtd解析》 在Java世界里,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而`hibernate-...
hibernate-mapping-3.0.dtd 配置后,就会在xml中进行提示
因为Hibernate在读出hbm.xml文件时需要通过网络读取到hibernate-mapping-3.0.dtd 文件。 如果没有网络不能正常工作。 所以提供上述文件。 以及hibernate-mapping-3.0.dtd,hibernate-configuration-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配置无自动提示的问题...
1. `hibernate-mapping-3.0.dtd`:这是Hibernate 3.0版本的映射文件DTD,用于验证`*.hbm.xml`文件的语法。 2. `hibernate-configuration-3.0.dtd`:这个DTD定义了`hibernate.cfg.xml`文件的结构,确保配置文件的正确...
"-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="包名"> 类名" table="表名"> <!-- 主键配置 --> <!-- 普通属性...
DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> ...
接下来,我们转向`hibernate-mapping-3.0.dtd`,它是Hibernate实体映射文件的DTD。映射文件是将Java类与数据库表关联起来的关键,通过这些映射,Hibernate能够理解如何将对象状态转化为数据库记录,反之亦然。在这个...
在Hibernate 3.0中,有两个重要的DTD文件:`hibernate-configuration-3.0.dtd`和`hibernate-mapping-3.0.dtd`,它们定义了Hibernate配置文件和映射文件的结构。 `hibernate-configuration-3.0.dtd` 是Hibernate配置...
hibernate开发时,必需用到的DTD文件,该压缩包含有所需的三个文件:hibernate.properties,hibernate-configuration-3.0.dtd,hibernate-mapping-3.0.dtd。
在本案例中,我们讨论的是与Hibernate配置相关的两个DTD文件:`hibernate-configuration-3.0.dtd`和`hibernate-mapping-3.0.dtd`。 `hibernate-configuration-3.0.dtd`文件是用于定义`hibernate.cfg.xml`配置文件的...
在Hibernate中,`hibernate-mapping-3.0.dtd`和`hibernate-configuration-3.0.dtd`是针对Hibernate 3.0版本的配置文件的DTD文件。`hibernate-mapping-3.0.dtd`主要用于定义实体类(Entity)与数据库表之间的映射关系...
在这个主题中,我们主要关注的是Hibernate的配置文件`hibernate.properties`以及它的DTD(Document Type Definition)文件,包括`hibernate-configuration-3.0.dtd`和`hibernate-mapping-3.0.dtd`。 首先,`...
我们来深入探讨一下`hibernate.properties`、`hibernate-configuration-3.0.dtd`以及`hibernate-mapping-3.0.dtd`这三个关键文件及其在Hibernate中的作用。 首先,`hibernate.properties`是Hibernate的配置文件,它...
`hibernate-mapping-3.0.dtd`用于描述实体类和数据库表之间的映射关系,而`hibernate-configuration-3.0.dtd`则负责设定Hibernate运行时的环境参数。这两个文件是Hibernate能够正常工作的基础,它们为开发者提供了一...