【发布时间】:2011-01-03 19:22:40
【问题描述】:
是否可以使用 Weblogic Server 管理控制台 (Weblogic 10.0) 或通过编辑服务器的配置文件 (config.xml) 将自定义对象(字符串或 URL)添加到 JNDI?
【问题讨论】:
标签: weblogic jndi weblogic-10.x
是否可以使用 Weblogic Server 管理控制台 (Weblogic 10.0) 或通过编辑服务器的配置文件 (config.xml) 将自定义对象(字符串或 URL)添加到 JNDI?
【问题讨论】:
标签: weblogic jndi weblogic-10.x
您可以,但如果使用集群,您将失去高可用性。见:http://docs.oracle.com/cd/E11035_01/wls100/jndi/jndi.html#wp475702
【讨论】:
我遇到了完全相同的问题。例如,在 Websphere 中,我可以向 JNDI 添加任意参数,例如临时目录、密码和其他信息,而无需重新编译/重建 EAR。
我搜索了一段时间,似乎 Weblogic 缺少此功能。我所做的是编写一个帮助程序类,它首先在 JNDI 中搜索给定的配置键,如果找不到,则返回搜索环境或系统变量。
也许这可以增强,以搜索以应用程序名称或上下文根为前缀的那些属性,在运行时发现,以避免在部署同一 EAR 的多个实例时发生名称冲突。
【讨论】:
我不这么认为。引用Load objects in the JNDI tree:
使用管理控制台,您可以在 JNDI 树中加载 WebLogic Server J2EE 服务和组件,例如 RMI、JMS、EJB 和 JDBC 数据源。
确实,我找不到使用控制台添加String 或URL 的方法。
AFAIK,标准方法是在您的部署描述符(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>
【讨论】: