`
xiao_yi
  • 浏览: 395392 次
  • 性别: 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-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提供下载...

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

    hibernate-configuration-3.0.dtd、hibernate-mapping-3.0.dtd、hibernate.properties(5.0.7)

    hibernate-configuration-3.0.dtd

    最新整理的hibernate-configuration的dtd文件,欢迎大家下载!最新整理的hibernate-configuration的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 3.0 dtd

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

    hibernate配置

    Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping- 3.0.dtd" &gt; &lt;hibernate-mapping package="包名"&gt; 类名" table="表名"&gt; 主键在java类中的字段名" column="对应表中字段" ...

    hibernate的dtd 包含hibernate.properties

    hibernate.properties hibernate-configuration-3.0.dtd hibernate-mapping-3.0.dtd

    hibernate小程序源码

    "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"&gt; &lt;!-- Generated by MyEclipse Hibernate Tools. --&gt; &lt;hibernate-configuration&gt; ...

    Hibernate1

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"&gt; &lt;hibernate-mapping package="cc.tukai.entity"&gt; &lt;generator class="native"&gt;&lt;/generator&gt; ...

    hibernate的dtd文件

    hibernate.properties,hibernate-configuration-3.0.dtd,hibernate-mapping-3.0.dtd

    Hibernate开发jar包

    "-//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; &lt;!-- 必须配置 --&gt; ...

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

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

    SSH的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

Global site tag (gtag.js) - Google Analytics