繁体   English   中英

Java的Hibernate的3.3.2.GA离线工作?

[英]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中查找文件,但目前无法找到方法。 对于密钥类型,您可以根据具有PUBLICSYSTEM关键字来选择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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM