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-mapping-3.0.dtd 配置后,就会在xml中进行提示
因为Hibernate在读出hbm.xml文件时需要通过网络读取到hibernate-mapping-3.0.dtd 文件。 如果没有网络不能正常工作。 所以提供上述文件。 以及hibernate-mapping-3.0.dtd,hibernate-configuration-3.0.dtd提供下载...
hibernate-configuration-3.0.dtd、hibernate-mapping-3.0.dtd、hibernate.properties(5.0.7)
最新整理的hibernate-configuration的dtd文件,欢迎大家下载!最新整理的hibernate-configuration的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-configuration-3.0.dtd hibernate-mapping-3.0.dtd
Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping- 3.0.dtd" > <hibernate-mapping package="包名"> 类名" table="表名"> 主键在java类中的字段名" column="对应表中字段" ...
hibernate.properties hibernate-configuration-3.0.dtd hibernate-mapping-3.0.dtd
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> ...
"-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="cc.tukai.entity"> <generator class="native"></generator> ...
hibernate.properties,hibernate-configuration-3.0.dtd,hibernate-mapping-3.0.dtd
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 必须配置 --> ...
hibernate开发时,必需用到的DTD文件,该压缩包含有所需的三个文件:hibernate.properties,hibernate-configuration-3.0.dtd,hibernate-mapping-3.0.dtd。
hibernate-configuration-3.0 hibernate-mapping-3.0 spring-aop-3.0 spring-beans-3.0 spring-context-3.0 spring-tool-3.0 spring-tx-3.0 struts-2.3