这两段有什么区别,为什么用第一种老是出错呢?
Context ctx = new InitialContext();
DataSource myDataSource= (DataSource)ctx.lookup("myDataSource");
Hashtable ht = new Hashtable();
InitialContext ctx = new InitialContext();
ht.put(ctx.PROVIDER_URL, "t3://localhost:7001") ;
ht.put(ctx.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
ctx = new InitialContext(ht);
DataSource myDataSource= (DataSource)ctx.lookup("myDataSource");
InitialContext的构造方法主要是准备JNDI的访问环境,如果不加参数,那就意味着是用本地匿名访问,也就是说,用户角色是匿名,ctx.PROVIDER_URL是LOCALHOST
所以,对于本地测试(并且JNDI资源没有设置安全属性)这两段代码没有区别,如果要访问远程的JNDI资源,就必须用饱含JNDI环境参数Hashtable初始化InitialContext。
必要的环境参数如:
Context.INITIAL_CONTEXT_FACTORY//连接工厂
Context.PROVIDER_URL//访问连接
Context.SECURITY_PRINCIPAL//安全用户
Context.SECURITY_CREDENTIALS//用户密码
posted on 2006-05-10 00:01
dragon 阅读(445)
评论(1) 编辑 收藏 所属分类:
java