如何将Tomcat上下文中的属性注入.xml到Seam组件中?



Seam文档会让你相信,如果你在web.xml中定义一个属性,或者通过-D参数,它会找到它并自动在你的bean上设置它。因此,如果你有一个名为gateway的bean,它有一个属性登录名和一个setter,你可以在seam.properties中创建一个称为gateway.login的属性,但如果你在-D中定义它,你必须使用org.seam.properties.gateway.login;参数或&context.xml.中的环境定义

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

您应该使用<Parameter/>选项,而不是<Environment/>(据我所知,Seam不会在JNDI中搜索初始化参数)。name属性不应包含org.jboss.seam.properties前缀(它仅用于-D条目),因此应使用:

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

override="false"意味着此处设置的值将优先于web.xml中的等效<context-param/>标记(如果存在)(如果不使用override选项,则web.xml中定义的上下文参数的优先级高于context.xml中的上下文参数)。

最新更新