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

发布于 2024-11-09 11:27:40 字数 416 浏览 0 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薯片软お妹 2024-11-16 11:27:40

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

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

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). The name property should not include the org.jboss.seam.properties prefix (it is only for -D entries), so you should use:

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

override="false" means that the value set here will have priority over equivalent <context-param/> tags in web.xml, if they exist (if you don't use the override option, context parameters defined in web.xml have priority over the one in context.xml).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文