一尘不染

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

tomcat

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

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


阅读 215

收藏
2020-06-16

共1个答案

一尘不染

您不应使用该<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)。

2020-06-16