如何将 Tomcat 的 context.xml 中的属性注入到 Seam 组件中?
Seam 文档会让您相信,如果您在 web.xml 中定义一个属性,或者通过 -D 参数,它会找到它并自动在您的 bean 上设置它。因此,如果您有一个名为 gateway 的 bean,带有属性登录和 setter,则可以在 seam.properties 中创建一个名为 gateway.login 的属性,但如果您在 -D 中定义它,则必须使用 org.seam.properties。网关.登录。我让它工作(使用 -D ),但我无法让它从 context.xml 中查看 &Parameter 或 &Environment 定义。
我这样做是因为我有一个商家网关的密钥,但我无法在项目的文本文件中拥有该密钥,并且不想在 catalina.sh 中拥有该密钥,因为它可能会用于其他应用程序。 context.xml 的好处在于它位于服务器上,并且可以仅限于使用网关的一个应用程序。
The Seam documentation would have you believe that if you define a property in web.xml, or through a -D argument, it will find it and automatically set it on your bean. So if you have a bean called gateway with a property login and a setter, you can make a property called gateway.login in seam.properties, but if you define it in a -D, you have to use org.seam.properties.gateway.login. I got that to work (with the -D that is), but I could not get it to see either &Parameter or &Environment definitions from in context.xml.
I am doing this because I have keys to a merchant gateway that I cannot have in a text file in the project, and would rather not have in catalina.sh, since that might be used for other apps. The nice thing about context.xml is that it's on the server and it can be confined to the one application that uses the gateway.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该使用
选项,而不是
(据我所知,Seam 不会在 JNDI 中搜索初始化参数)。name
属性不应包含org.jboss.seam.properties
前缀(仅适用于 -D 条目),因此您应该使用:override=" false"
表示此处设置的值将优先于web.xml
中的等效
标记(如果存在)(如果你不使用override
选项,web.xml
中定义的上下文参数优先于context.xml
中定义的上下文参数)。You should use the
<Parameter/>
option, not<Environment/>
(to the best of my knowledge Seam does not search initialization parameters in JNDI). Thename
property should not include theorg.jboss.seam.properties
prefix (it is only for -D entries), so you should use:override="false"
means that the value set here will have priority over equivalent<context-param/>
tags inweb.xml
, if they exist (if you don't use theoverride
option, context parameters defined inweb.xml
have priority over the one incontext.xml
).