org.dom4j.DocumentException: hibernate.sourceforge.net Nested exception: hibernate.sourceforge.net
java.net.UnknownHostException: hibernate.sourceforge.net
我在休眠中显示了上面的这些错误,当互联网打开时,它会正常工作。如果没有互联网,它将显示上述错误。
请帮助我提前谢谢。
请给出简明扼要的解释。
您的 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”。之后是通配符。
从这里下载 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">
现在没有互联网连接,您的应用程序将正常工作。