2013-12-08 275 views
1

我在elasticbeanstalk上的amazon aws託管的我的tomcat servlet遇到了一些問題。對某些值返回null的System.getProperties

爲了保護敏感數據,我將它保存在web.xml文件中,以便它可以從System.getProperties()引用。

當通過代碼System.getProperties()調用這些數據時,其中一些數據返回空 - 而其他數據也會通過System.getProperties()返回正確的值。

我的web.xml文件如下:

<env-entry> 
    <env-entry-name>RDS_PASSWORD</env-entry-name> 
    <env-entry-type>java.lang.String</env-entry-type> 
    <env-entry-value>blah</env-entry-value> 
</env-entry> 
<env-entry> 
    <env-entry-name>RDS_HOSTNAME</env-entry-name> 
    <env-entry-type>java.lang.String</env-entry-type> 
    <env-entry-value>blah</env-entry-value> 
</env-entry> 
<env-entry> 
    <env-entry-name>DUMBDATA</env-entry-name> 
    <env-entry-type>java.lang.String</env-entry-type> 
    <env-entry-value>blah</env-entry-value> 
</env-entry> 

我的代碼如下:

 w.println(System.getProperty("DUMBDATA")); 
    w.println(System.getProperty("RDS_HOSTNAME")); 

雖然我嘗試從同樣的方法訪問數據和他們在成立同樣的,RDS_HOSTNAME返回它的正確值,而DUMBDATA返回null。

我很欣賞這個問題的任何見解,

謝謝。

+0

您有使用JNDI訪問環境條目,環境entrie不是系統屬性。 – vzamanillo

回答

2

嘗試像

Properties p = System.getProperties(); 
Enumeration keys = p.keys(); 
while (keys.hasMoreElements()) { 
    String key = (String)keys.nextElement(); 
    String value = (String)p.get(key); 
    w.println(key + ": " + value); 
} 

,找出哪些是支持的。