使用jndi和DataSource建立数据库连接?

jacshan 2006-07-12 05:42:42
运行出现下列异常
NamingException caught in getConnected: 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
java.lang.NullPointerException
at chapter15.ObjectExample1.main(ObjectExample1.java:59)
Exception in main: null

//下面是获得DataSource
InitialContext ctx = new InitialContext( );
DataSource ds = (DataSource) ctx.lookup("objects");

jndi.properties的内容:
java.naming.factory.initial=com.sun.jndi.rmi.registry.RegistryContextFactory
java.provider.url=rmi://localhost:1099
这个jndi.properties应该放在哪里啊
...全文
404 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacshan 2006-07-12
  • 打赏
  • 举报
回复
哦,原来是这么回事,看来我还得多研究一下了,谢谢各位了
trumplet 2006-07-12
  • 打赏
  • 举报
回复
我写的不是WEB程序,我写的是应用程序,不知道程序应该怎么配
---------------

像这样的应用程序,也是分成两部分,一部分是服务端,一部分是客户端。

你亮出来的代码,是属于客户端的。
jacshan 2006-07-12
  • 打赏
  • 举报
回复
我写的不是WEB程序,我写的是应用程序,不知道程序应该怎么配
infowain 2006-07-12
  • 打赏
  • 举报
回复
你找得这个方法不太好,本机不用设置env的,
直接InitalContext ctx=new InitialContext()就可以了,
你的问题出在(DataSource) ctx.lookup("objects");这一句上面,你用的是什么服务器,配置了datasource了吗?
如果是tomcat,通常是这样写ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
jacshan 2006-07-12
  • 打赏
  • 举报
回复
书上什么也没讲,只是提供了两种方法,一种是用配制文件
一种是用
Hashtable env =new Hashtable();
env.put(Context.INIAL_CONTEXT_FACTORY,"com.sun.jndi.rmi.registry.RegistryContextFactory");
env.put(Context.PROVIDER_URL,"rmi://localhost:1099");
InitalContext ctx=new InitialContext(env);
chnic 2006-07-12
  • 打赏
  • 举报
回复
看不懂。。你这到底是JNDI还是RMI???
JNDI不是这样拿的。。
trumplet 2006-07-12
  • 打赏
  • 举报
回复
你的正在测试书上的代码吗?

书上应该有如何在 jndi 上注册名字的讲解,

先在 jndi 上注册一个名字,然后再到 jndi 上去找它,对不对?
jacshan 2006-07-12
  • 打赏
  • 举报
回复
需要下哪些工具
jacshan 2006-07-12
  • 打赏
  • 举报
回复
难道还要装JNDI服务吗
trumplet 2006-07-12
  • 打赏
  • 举报
回复
rmi://localhost:1099

localhost 的 1099 端口上,要有 jndi 服务啊,不然怎么能找到呢
jacshan 2006-07-12
  • 打赏
  • 举报
回复
objects是数据库名,我用常归的方法是可以的
不知道这句java.provider.url=rmi://localhost:1099是什么意思,这是书上抄的
kingdoom 2006-07-12
  • 打赏
  • 举报
回复
jndi.properties 放到工程根目录下

DataSource ds = (DataSource) ctx.lookup("objects"); 数据源没找到啊,objects配好没

62,614

社区成员

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

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