2014-02-28 28 views
0

我是相當新的JPA和我的項目中applciation服務器Glassfish的3.1.2 。所以當我遇到我的項目persitence.xml,我已經通過了http://en.wikibooks.org/wiki/Java_Persistence/Runtime得到基本思路它是如何在JavaSE和JavaEE中使用的。 但是我遇到了幾個通過$ {}配置的屬性。的persistence.xml變量聲明

<jta-data-source>${dataSource}</jta-data-source> 
<property name="javax.persistence.jdbc.user" value="${testDBUser}" /> 

所以我很困惑這些變量(dataSource,testDBUser..etc)的定義。所以我已經通過這個 http://tomee.apache.org/configuring-persistenceunits-in-tests.htmlhttp://forcedotcom.github.io/java-sdk/connection-url。 我明白這些都是系統變量和環境變量/初始上下文變量。

但是我不知道他們在哪裏配置/聲明,我搜索了我的整個項目的這些變量,但沒有運氣。

這些變量是在應用程序服務器啓動期間配置的嗎?它們是在應用程序服務器的任何* .xml中聲明的嗎?

請您簡單介紹一下這些聲明的位置?

回答

0

它通常是在的.properties文件中聲明。主要可以命名爲數據庫。 屬性。但它是不夠的,使其工作。你需要以某種方式映射它。所以,春天需要一個角色,並提供一個很好的方式,使其:使用PropertyPlaceholderConfigurer和語法是這樣的:

<property name="location"> 
     <value>HERE DECLARE YOUR PROPERTY FILE</value> 
     <value>HERE DECLARE YOUR PROPERTY FILE</value> 
         ... 
    </property> 

但是,最好的辦法是宣佈它在你的服務器.xml :)

+0

感謝您的回覆。我的項目中沒有使用Spring。具有Glassfish Web服務器的EJB,JPA。我檢查了整個項目(其中還包括.properties文件),但我沒有遇到這些變量。 但是你能告訴什麼是server.xml嗎?你的意思是在application server中說application.xml? – chebus

+0

嘗試查找項目是否具有ResourceLink,請嘗試以下操作: http://stackoverflow.com/questions/12655842/configuring-a-mysql-datasource-in-glassfish-3-application-server – user3252538