在Weblogic 10中添加自定义对象到JNDI

10

是否可以使用Weblogic Server管理控制台(Weblogic 10.0)或通过编辑服务器配置文件(config.xml)来将自定义对象(字符串或URL)添加到JNDI中?

3个回答

6
我不这么认为。引用在JNDI树中加载对象

使用管理控制台,您可以将WebLogic Server J2EE服务和组件(如RMI、JMS、EJB和JDBC数据源)加载到JNDI树中。

事实上,我找不到使用控制台添加StringURL的方法。

据我所知,标准的方法是在部署描述符(web.xml、ejb-jar.xml)中放置env-entry

<env-entry>
    <env-entry-name>string/foo</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>foobar</env-entry-value>
</env-entry>

<env-entry>
    <env-entry-name>url/bar</env-entry-name>
    <env-entry-type>java.net.URL</env-entry-type>
    <env-entry-value>http://foobar/</env-entry-value>
</env-entry>

2
但是,如果我将它放在web.xml中,任何更改都需要重新构建和部署。很奇怪,我可以将JDBC配置放在服务器上,这样更改就不需要重新构建,但我不能将我的自定义变量(例如邮件帐户的密码,无法在邮件会话中配置)放在那里,需要将它们保留在我的应用程序中。 - Tadeusz Kopec for Ukraine
1
你应该使用plan.xml来更新/覆盖web.xml中的默认值。 - Sebastian J.

1

1

我曾经遇到过完全相同的问题。例如,在Websphere中,我可以添加任意参数(如临时目录、密码和其他信息)到JNDI中,而无需重新编译/重建EAR。

我搜索了一段时间,似乎Weblogic缺少这个功能。我的做法是编写一个辅助类,首先搜索给定配置键的JNDI,如果找不到,则回退到搜索环境或系统变量。

也许可以增强此功能,以在运行时发现应用程序名称或上下文根前缀的属性,以避免多个相同EAR实例部署时出现名称冲突。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接