[英]working java Hibernate 3.3.2.GA offline?
我在脱机解析Hibernate的XML时遇到问题。 我需要知道在没有网络连接时如何指定DTD。 这是我的Hibernate配置。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/global_data</property>
<property name="connection.username">root</property>
<property name="connection.password">pass</property>
。 。 。
我尝试将xml配置中的PUBLIC更改为SYSTEM,但仍然收到错误。 我正在使用eclipse IDE,只是将我的项目构建路径指向手动导入所有hibernate lib到的用户lib。
您将需要将映射添加到Eclipse IDE。 为此,导航到XML-> XML Catalog菜单。 然后,您需要添加一个条目。 对于位置,您将需要指定dtd文件所在的位置。 有一种方法可以在jar中查找文件,但目前无法找到方法。 对于密钥类型,您可以根据具有PUBLIC
或SYSTEM
关键字来选择Public ID或System ID。 然后,对于密钥,您可以将-//Hibernate/Hibernate Configuration DTD 3.0//EN
放置在备用网址字段中,可以选择提供地址http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd
。
为了易于使用,我发现在jar中找到dtd,然后将其放在我的工作区中名为资源的项目中很有用,但是指定jar位置会更正确。
我的快速两步解决方案:
1)在您的hibernate.cfg.xml所在的相同eclipse包中创建一个名为hibernate-configuration-3.0.dtd的空文件。
然后,当您在线时,将在http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd中找到的文本下载/复制到您创建的空dtd文件中。
2)现在,当您离线时,从此处更改hibernate.cfg.xml中的第二行
DOCTYPE hibernate-configuration PUBLIC“-// Hibernate / Hibernate Configuration DTD 3.0 // EN”“ http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd ”>
对此
!DOCTYPE hibernate-configuration SYSTEM“ classpath:///hibernate-configuration-3.0.dtd”>
(请注意,我必须删除开头的小于号才能使!DOCTYPE显示在此答案中。...因此请务必在第二行的开头重新键入它)
我将“在线”和“离线”设置都保存在xml底部的注释中,以便可以来回切换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.