【问题标题】:why hibernate.sourceforge.net Nested exception: hibernate.sourceforge.net occur?为什么hibernate.sourceforge.net嵌套异常:hibernate.sourceforge.net会出现?
【发布时间】:2015-11-10 18:34:09
【问题描述】:
org.dom4j.DocumentException: hibernate.sourceforge.net Nested exception: hibernate.sourceforge.net

java.net.UnknownHostException: hibernate.sourceforge.net

我在休眠时遇到了上面显示的这些错误,当互联网打开时,它会正常工作。如果没有互联网,它将显示上述错误。

请帮助我提前谢谢。

请给出简明扼要的解释。

【问题讨论】:

标签: hibernate dtd


【解决方案1】:

您的某个 XML 文件中的 DOCTYPE 定义似乎引用了 hibernate.sourceforge.net 上的 DTD。

现在 DTD 存在,但如果您的应用程序无法访问 Internet,则无法访问它。

您可以尝试将 DTD 复制到本地位置,然后将 XML 文件的标头从以下内容更改:

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

到这样的事情:

<!DOCTYPE hibernate-configuration SYSTEM "hibernate-configuration.dtd">  

其中“hibernate-configuration.dtd”指向文件系统或 jar 文件中的本地资源。

解决这个问题的最肮脏的技巧是完全删除 DTD 声明:

<!DOCTYPE hibernate-configuration>

这也是一个有效的文档类型,但它唯一的作用是将文档中根元素的名称限制为“hibernate-configuration”。之后是通配符。

【讨论】:

    【解决方案2】:

    从这里下载 DTD 文件 http://hibernate.org/dtd/hibernate-configuration-3.0.dtd

    然后将这个hibernate-configuration-3.0.dtd 文件添加到jar 中。对于基于 maven 的项目,将该文件添加到 /src/main/resources 文件夹中。

    现在在 hibernate.cfg.xml 添加下面的 DTD 声明

    <!DOCTYPE hibernate-configuration SYSTEM "classpath://hibernate-configuration-3.0.dtd">
    

    现在在没有互联网连接的情况下,您的应用也可以运行。

    【讨论】:

      猜你喜欢
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多