0
org.dom4j.DocumentException: hibernate.sourceforge.net Nested exception: hibernate.sourceforge.net

java.net.UnknownHostException: hibernate.sourceforge.net

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

请帮助我提前谢谢。

请给出简明扼要的解释。

4

2 回答 2

0

您的 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”。之后是通配符。

于 2013-11-15T07:02:48.687 回答
0

从这里下载 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">

现在没有互联网连接,您的应用程序将正常工作。

于 2015-09-23T05:52:54.953 回答