日期:2014-05-16  浏览次数:20518 次

在tomcat中用jndi连接出现数据库异常。
点击右边红色标题查看本文完整版:在tomcat中用jndi连接出现数据库异常。

当我用tomcat的图形化界面配置完jndi后,写了如下java代码与jsp代码进行测试
? package a;
?
? import java.sql.*;
? import java.util.*;
? import javax.naming.*;
? import javax.sql.*;
?
? public class B
? {
? private int a=1;
?
? Connection con;
? public int getA() throws Exception
? {
?
? try
? {
? Context ic=new InitialContext();
? DataSource ds=(DataSource)ic.lookup("java:comp/env/jdbc/BookDB");
?
? }
? catch(Exception e)
? {
? a=0;
? }
? return a;
? }
? }
?
? <HTML>
? <BODY>
? <jsp:useBean id="aa" class="a.B"/>
? ${aa.a}
? </BODY>
? </HTML>
?
? 上面的代码jsp显示为1,说明我的jndi配置成功,但当我加上如下一行时
? Connection con=ds.getConnection();
? (在DataSource ds=(DataSource)ic.lookup("java:comp/env/jdbc/BookDB");下
? )
? jsp显示为0,为什末我无法连接数据库呢?
? 另外,我已经注意打开sqlserver服务器了,三个jar包也已经放到common/lib下了
?

------解决方法--------------------
1 用户名或密码不正确
?
? 2 连接数据库的url是否正确
------解决方法--------------------
程序没错应该是配置问题
? 数据源配好了吗,驱动包是否正确,用户名密码是否需要
? java:comp/env/jdbc/BookDB
------解决方法--------------------
看看你的server.xml把,看看里面什么东西配错了
? <Resource name="jdbc/BookDB" auth="Container" type="javax.sql.DataSource"/>
? <ResourceParams name="jdbc/BookDB">
? <parameter>
? <name>username</name>
? <!-- Database User Name -->
? <value>username</value>
? </parameter>
? <parameter>
? <name>password</name>
? <!-- User Password -->
? <value>password</value>
? </parameter>
? <parameter>
? <name>driverClassName</name>
? <!-- Database Driver Class Name -->
? <value>oracle.jdbc.driver.OracleDriver</value>
? </parameter>
? <parameter>
? <name>url</name>
? <!-- Database Address -->
? <value>jdbc:oracle:thin:@ip:1521:ServiceName</value>
? </parameter>
? </ResourceParams>
------解决方法--------------------
你配置了server.xml了吗?