为什么出现hibernate.sourceforge.net嵌套异常:hibernate.sourceforge.net?

为什么出现hibernate.sourceforge.net嵌套异常:hibernate.sourceforge.net?,hibernate,dtd,Hibernate,Dtd,我在hibernate中看到了上面显示的这些错误,当internet打开时,它就会正常工作。如果没有互联网,它将显示上述错误 请先帮我谢谢 请给出简短而清晰的解释。您的一个XML文件中的DOCTYPE定义似乎引用了hibernate.sourceforge.net上的DTD 现在DTD已经存在,但如果您的应用程序无法访问internet,则无法访问它 您可以尝试将DTD复制到本地,并更改XML文件的头,如下所示: org.dom4j.DocumentException: hibernate.so

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

请先帮我谢谢


请给出简短而清晰的解释。

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

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

您可以尝试将DTD复制到本地,并更改XML文件的头,如下所示:

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

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

对这样的事情:

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

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

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

要克服这一点,最肮脏的技巧是完全删除DTD声明:

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


这也是一个有效的doctype,但它所做的唯一事情是将文档中根元素的名称限制为“hibernate配置”。之后是wildchar。

从这里下载了DTD文件

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

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

<!DOCTYPE hibernate-configuration>

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

这可能会帮助您: