簡體   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