javax.naming.Content 这些到底是干什么的???

chan10 2010-11-11 04:44:59
javax.naming.Context

看JDK文档,
此接口表示一个命名上下文(什么东东?),它由一组名称到对象的绑定组成。它包含检查和更新这些绑定的一些方法。

本人所做的项目应用程序中,有用它来绑定变量(rebind),
并可以lookup到DataSource。【weblogic配置的Oracle数据源】

于是,闲着无聊自己也准备写个绑定、查询的例子。

直接新建了个类:

public class TestNaming {

public static void main(String[] args) {
javax.naming.Context ctx = null;
try {
ctx = new javax.naming.InitialContext();
ctx.rebind("abc", "male");
System.out.println("================");
} catch (Exception e) {
e.printStackTrace();
} finally {
if(null != ctx) {
try {
ctx.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}


运行了下,报错:

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:640)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:280)
at javax.naming.InitialContext.rebind(InitialContext.java:363)
at naming.TestNaming.main(TestNaming.java:9)



通过查资料,原因:
当不能创建任何初始上下文实现时,抛出此异常。【不理解。】

不知道是不是因为,没有上下文(不知道什么是上下文)?

于是新建了个应用,把这些代码发布到weblogic的server下,
再次执行,还是报相同的错,不明白这怎么解决,
或者说,这个Context到底是怎么样的用途?

PS;当然rebind不成功,lookup就更无从谈起了。
然后什么JNDI一堆堆的名词,平时开发时是遇到这些,但很少去了解她。
看来搭好的项目和自己从头开始去了解一个项目,还是有很大差别的。

...全文
150 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chan10 2010-11-12
  • 打赏
  • 举报
回复
好长时间过去了,没人解答。
自己测了下,找到一个问题解答点:
这种代码不是在java的main等方法中直接调用。
首先: 把这些应用部署到服务器中(本人部署在weblogic上)。
然后: 通过如JSP等入口上下文调用这些Context的地方。
这样,rebind和lookup方法都可以顺利执行。
有不全的地方,还希望有人来补充。共同进步。
chan10 2010-11-11
  • 打赏
  • 举报
回复
怎么都没人来啊?
不会是嫌分不够吧。。。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧