2011-05-24 57 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中的上下文参数)。

相关问题