*****一个问题好长时间没解决,我要急疯了!!!大伙救救我吧*****

zhizhi3 2003-10-09 11:19:28
在连接池的类文件中有如下一段程序:

try{
initCtx = new InitialContext();
if(initCtx==null) throw new Exception("Initial Failed!");
ctx = (Context) initCtx.lookup("java:comp/env");
if(ctx!=null) ds= (DataSource) ctx.lookup(jdbc/sqlServerDB");
else{
throw new Exception ("ctx is null!!!");
}
if(ds==null) throw new Exception("Look up DataSource Failed!");
}
catch(Exception e){
System.out.println(e.getMessage());

}
测试时总是错误:look up DateSource Failed!
我在server.xml中已经进行了配置

<Context path="/yunnan" docBase="yunnan" debug="0" reloadable="true">
<Resource name="jdbc/sqlServerDB" auth="Container" type="javax.sql.DataSource" />
<ResourceParams name="jdbc/sqlServerDB">
<parameter><name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter><name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter><name>driverName</name><value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DataBaseName=test</value></parameter>
<parameter><name>username</name><value>sa</value></parameter>
<parameter><name>password</name><value></value></parameter>
<parameter><name>maxActive</name><value>20</value></parameter>
<parameter><name>maxIdle</name><value>10</value></parameter>
<parameter><name>maxWait</name><value>-1/value></parameter>
</ResourceParams>
</Context>
为什么呢?我该怎么改,大家救救我!!!
...全文
45 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcjl 2003-10-10
  • 打赏
  • 举报
回复
把你修改后的代码也贴出来
scj123456 2003-10-10
  • 打赏
  • 举报
回复
InitialContext ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("ddd");(ddd为数据源的名称)
Connection con=ds.getconnection();
zhizhi3 2003-10-10
  • 打赏
  • 举报
回复
我用jdbc-odbc桥可以连接,现在想改用连接池,但总是不成功,我也按照alan8888() 的改了,也不行,为什么呢????
zhizhi3 2003-10-10
  • 打赏
  • 举报
回复
谢谢大家了
我已经解决了
不过不是通过配置
而是自己写的类文件*_*
xinshou1979330 2003-10-09
  • 打赏
  • 举报
回复
用JDBC-ODBC桥来连接数据库试一下啊
kaibinsj 2003-10-09
  • 打赏
  • 举报
回复
ctx.lookup(jdbc/sqlServerDB")感觉这样是用了jndi来配置数据库了,这样要你用工具来配一下的吧?直接用好像是有问题,你用楼上有人给的那个好了。!
zhizhi3 2003-10-09
  • 打赏
  • 举报
回复
我也不太明白,每次测试的时候总是ctx.lookup(jdbc/sqlServerDB")这个地方,我改怎么办呢???
asdmonster 2003-10-09
  • 打赏
  • 举报
回复
好奇怪哦,按理说如果
ctx.lookup(jdbc/sqlServerDB");
出错,应该不是楼主打印出来的错误,如果不是那里出错,

(ds==null)
就不应该为真啊,

楼主贴的代码对吗?
zcjl 2003-10-09
  • 打赏
  • 举报
回复
if(ctx!=null) ds= (DataSource) ctx.lookup(jdbc/sqlServerDB");
-----------------------------
如果不是我看错了,就是你写错了
应该是if(ctx!=null) ds= (DataSource) ctx.lookup("jdbc/sqlServerDB");
alan8888 2003-10-09
  • 打赏
  • 举报
回复
给你发一个我正在用的,如还不好使,那就是别的问题了。
try {
Context ctx = (Context) new InitialContext().lookup("java:comp/env");
DataSource ds = (DataSource)ctx.lookup("jdbc/Office");
conn = ds.getConnection();
// System.out.println(conn);
}
catch (Exception e) {
System.out.println("Connection"+e.getMessage());

}
return conn;
}
//server.xml
<Context path="/oo" docBase="D:\Office" debug="0" reloadable="true">
<Resource name="jdbc/Office" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/Office">
<parameter><name>user</name><value>sa</value></parameter>
<parameter><name>password</name><value>sa</value></parameter>
<parameter><name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></parameter>
<parameter><name>driverName</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Office</value></parameter>
<parameter><name>maxActive</name><value>20</value></parameter>
<parameter> <name>maxIdle</name><value>20</value></parameter>
<parameter> <name>maxWait</name><value>-1</value></parameter>

</ResourceParams>
</Context>

81,092

社区成员

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

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