【问题标题】:Adding custom object to JNDI on Weblogic 10在 Weblogic 10 上向 JNDI 添加自定义对象
【发布时间】:2011-01-03 19:22:40
【问题描述】:

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

【问题讨论】:

    标签: weblogic jndi weblogic-10.x


    【解决方案1】:

    您可以,但如果使用集群,您将失去高可用性。见:http://docs.oracle.com/cd/E11035_01/wls100/jndi/jndi.html#wp475702

    【讨论】:

      【解决方案2】:

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

      我搜索了一段时间,似乎 Weblogic 缺少此功能。我所做的是编写一个帮助程序类,它首先在 JNDI 中搜索给定的配置键,如果找不到,则返回搜索环境或系统变量。

      也许这可以增强,以搜索以应用程序名称或上下文根为前缀的那些属性,在运行时发现,以避免在部署同一 EAR 的多个实例时发生名称冲突。

      【讨论】:

        【解决方案3】:

        我不这么认为。引用Load objects in the JNDI tree:

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

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

        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>
        

        【讨论】:

        • 但是如果我把它放在 web.xml 中,任何更改都需要重新构建和重新部署。奇怪的是,我可以将 JDBC 配置放在服务器上,这样更改就不需要重建,但我不能把我的自定义变量(例如,邮件帐户的密码,不能在邮件会话中配置)放在那里,并且需要将它们保留在我的应用程序中。
        • 您应该使用 plan.xml 从 web.xml 更新/覆盖默认值
        猜你喜欢
        • 1970-01-01
        • 2013-08-17
        • 1970-01-01
        • 2015-07-31
        • 2022-12-06
        • 2014-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多