2011-05-24 31 views
2

Seam文檔會讓你相信,如果你在web.xml中定義一個屬性,或者通過-D參數,它會找到它並自動將它設置在你的bean上。所以如果你有一個名爲gateway的bean,它有一個屬性登錄和一個setter,你可以在seam.properties中創建一個名爲gateway.login的屬性,但是如果你在-D中定義它,你必須使用org.seam.properties。 gateway.login。我得到了它的工作(與-D是),但我無法看到&參數或&在context.xml中的環境定義。如何將屬性從Tomcat的context.xml注入到Seam組件中?

我這樣做是因爲我有一個商戶網關的鑰匙,我不能在項目中的文本文件中使用,並且不想在catalina.sh中使用,因爲這可能會用於其他應用程序。關於context.xml的好處在於它在服務器上,它可以侷限於使用網關的一個應用程序。

回答

0

您應該使用<Parameter/>選項而不是<Environment/>(據我所知,Seam不會在JNDI中搜索初始化參數)。該name財產不應包括org.jboss.seam.properties前綴(它只對-D條目),所以你應該使用:

<Parameter name="gateway.login" value="yourvalue" override="false" /> 

override="false"意味着,這裏的數值將有超過相當於<context-param/>標籤優先web.xml,如果他們存在(如果您不使用override選項,則web.xml中定義的上下文參數優先於context.xml中的上下文參數)。

相關問題