事实上我之前发现了这样的信息: 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值吗?非常感谢
答案 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以及它们的优点和缺点。它有点过时但仍应适用。