如何将Tomcat的context.xml中的属性注入Seam组件?

时间:2011-05-24 00:25:57

标签: security tomcat properties seam

Seam文档让您相信,如果您在web.xml中定义属性,或者通过-D参数,它会找到它并自动在您的bean上设置它。因此,如果您有一个名为gateway的bean,它具有属性登录名和setter,您可以在seam.properties中创建名为gateway.login的属性,但如果在-D中定义它,则必须使用org.seam.properties。 gateway.login。我得到了它(使用-D),但是我无法从context.xml中看到& Parameter或& Environment definitions。

我这样做是因为我有一个商家网关的密钥,我不能在项目的文本文件中,并且宁愿没有catalina.sh,因为它可能用于其他应用程序。 context.xml的优点在于它位于服务器上,并且可以局限于使用网关的一个应用程序。

1 个答案:

答案 0 :(得分: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中的上下文参数。