[英]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.