WSAD 中用JNDI联接数据库问题。
在Servlet的处理请求中如下代码:
Properties env=new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.ibm.websphere.naming.WsnInitialContextFactory");
env.put(Context.PROVIDER_URL,"iiop://catghost:900");
Context ctx=new InitialContext(env);
DataSource ds=(DataSource )ctx.lookup("jdbc/OraTest");
运行通过,可是加上以下代码:
Connection conn=ds.getConnection();
就会出现如下错误:
java.sql.SQLException: CONM7005E:类 (oracle.jdbc.driver.OracleDriver) 不实现 javax.sql.ConnectionPoolDataSource 或 javax.sql.XADataSource
.....
可是用:
ConnectionPoolDataSource ds=(ConnectionPoolDataSource)ctx.lookup("jdbc/OraTest");实现时又出现如下错误:
java.lang.ClassCastException: com.ibm.ejs.cm.JDBC1PhaseRF
at testjdbc.TestEnv.performTask(TestEnv.java:49)
at testjdbc.TestEnv.doGet(TestEnv.java:24)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.servlet.engine.webapp.StrictServletInstance.doService(ServletManager.java:827)
....
不知是什么原因,请高手指教。Thanks.
问题点数:0、回复次数:6Top
1 楼Angeller(天使姐姐)回复于 2003-08-03 13:24:50 得分 0
小弟弟啊,你在服务器上配数据源了吗?
没有配吧,嘻嘻
查查帮助,配置ORACLE的数据源,大约四五步吧
哈哈Top
2 楼happynight(泪)回复于 2003-08-04 09:29:09 得分 0
是在WAS上的资源中添加新的JDBC驱动程序吗?
我以经添加了,可是还不行。
怎么办?Top
3 楼maafei(不常来这里)回复于 2003-08-04 14:41:32 得分 0
首先要配置jndi数据源,指定需要的class12.zip文件。
我是这样写的,供你参考。
//创建参数列表以访问命名系统
Hashtable parms = new Hashtable();
parms.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.ejs.ns.jndi.CNInitialContextFactory"); // 访问命名系统
ctx = new InitialContext(parms); // 从命名系统中获取 DataSource 工厂对象
ds = (DataSource)ctx.lookup("jdbc/ora8"); // 使用 DataSource 工厂获取数据服务器连接
Cn = ds.getConnection(MyUserID,MyPassWord); // 创建statement
St = Cn.createStatement();
要有用户名和密码的。Top
4 楼happynight(泪)回复于 2003-08-04 17:05:03 得分 0
还是不行,这回出现如下错误:
java.sql.SQLException: CONM7005E:类 (oracle.jdbc.driver.OracleDriver) 不实现 javax.sql.ConnectionPoolDataSource 或 javax.sql.XADataSource
可是用ConnectionPoolDataSource时
又有如下错误:java.lang.ClassCastException: com.ibm.ejs.cm.JDBC1PhaseRF
这是什么原因呢 苦恼....-_-
Top
5 楼brownxdz(飞人)回复于 2003-09-05 17:44:24 得分 0
建议将900改成2809默认端口Top
6 楼Martin2002()回复于 2003-09-07 10:53:36 得分 0
关于这个问题,本人已经在论坛中回答过若干次,请不要总是重复提问,建议首先查询一下论坛中的贴子,然后再提问,这样对大家都好.Top




