如何在Websphere 7 JNDI中配置String值?

时间:2012-09-07 06:16:39

标签: websphere jndi websphere-7

事实上我之前发现了这样的信息: Configuring and looking up a simple String via JNDI in WebSphere

我想做“干净”的方式(http://www.ibm.com/developerworks/websphere/library/techarticles/0611_totapally/0611_totapally.html)。也许我对WebSphere过于苛刻,我的思绪完全被文章搞砸了,因为它显示了一个更复杂的例子。

有人可以给我一些关于如何配置WebSphere的简短步骤,以便我可以在JNDI中绑定String值吗?非常感谢

2 个答案:

答案 0 :(得分:4)

好吧,假设您要存储的内容是“配置”元素,我实际上是花时间并使用资源环境提供程序实现它,因为它是一种更灵活,更明显更便携的方法。

为了使用JNDI绑定String,请使用“String Namespace Bindings”:http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ae/ae/unam_rstring_namespace.html

已编辑(添加有关ResEnv的详细信息):

工厂类是您编写的类,而不是IBM。以下是一个例子:

public class MyFactory implements javax.naming.ObjectFactory {
    @Override
    public Object getObjectInstance(Object object, Name name, Context context, Hashtable env) throws NamingException {
        MyConfig cfg = new MyConfig();

        for (Enumeration e = ((Reference) object).getAll(); e.hasMoreElements();) {
            RefAddr addr = (RefAddr) e.nextElement();
            String key = addr.getType();
            Object value = addr.getContent();
            cfg.put(key, value);
        }
    }
}

(我们假设MyConfig是一个使用get(String)put(String, String)方法的简单类

接下来,在WebSphere中创建一个新的Resource Environment Provider。对于Referenceable,将MyFactory的完全限定类名称作为“工厂类”,将MyConfig的完全限定类名称作为“类”。

接下来,添加资源环境条目。给它一个JNDI名称,比如myresources/test。从下拉框中选择Referenceable。

单击“自定义属性”,然后在其中添加键值对。

保存WebSphere配置,重新启动服务器并重试。向myresources/test发出JNDI查找,您将获得一个MyConfig实例,其中包含您放置的所有自定义属性。

让我们知道它是怎么回事。祝你好运!

答案 1 :(得分:1)

我发布了一些JNDI configuration tips以及它们的优点和缺点。它有点过时但仍应适用。