我是这么做的(我是按照v512高端JAVA视频上的配置的。):
1、先修改tomcat5.5/conf/content.xml,我加上了如下代码:
<Resource name="jdbc/mysqlds" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30"
  maxWait="10000" username="root" password="56906950" driverClassName="com.mysql.jdbc.Dirver"
  url="jdbc:mysql://127.0.0.1:3333/music" />其中3333是我的数据库端口,music是我需要连接的数据库...2、把mysql驱动放进tomcat5.5/common/lib文件夹中3、然后再项目中引用:
Context context=new InitialContext(); 
DataSource ds=(DataSource)context.lookup("java:/comp/env/jdbc/mysqlds");
conn=ds.getConnection();然后启动tomcat服务器,但是用测试JAVA类测试连接的时候,出现异常:
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

解决方案 »

  1.   

    com.mysql.jdbc.Dirver
    应该是
    com.mysql.jdbc.Driver
      

  2.   

    url="jdbc:mysql://127.0.0.1:3333/music" /> 
    这个端口有问题吧,,mysql默认的是3306,你改端口了?
      

  3.   

    classpath中加入mysql的驱动。(测试用例的运行时配置是否有配置mysql驱动的路径?)另外总觉得你的代码配置有问题,我没这么用过,不知道是否说得正确:
    <Resource name="jdbc/mysqlds" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30"
      maxWait="10000" username="root" password="56906950" driverClassName="com.mysql.jdbc.Dirver"
      url="jdbc:mysql://127.0.0.1:3333/music" /> 
    这里的jdbc/mysqlds是否是正确的?运行时路径对吗?DataSource ds=(DataSource)context.lookup("java:/comp/env/jdbc/mysqlds"); 
    貌似没有comp吧?是不是com?
      

  4.   

    回复楼上的,我的数据库端口是3333,数据库是music,url没有问题。
    DataSource ds=(DataSource)context.lookup("java:/comp/env/jdbc/mysqlds"); 
    字符串确实是comp,我按照例子做的啊。
    是不是需要配置JNDI什么的?
    除了这几部还需要做别的什么吗?谢谢各位的热心啊
      

  5.   

    应该是
    DataSource ds=(DataSource)context.lookup("java:comp/env/jdbc/mysqlds"); 
      

  6.   

    谢谢各位的提醒
    我把所有的手工错误改正后,在JSP页面进行了调试,发现JSP页面可以成功,但是在JAVA类里面就不行了
    这是怎么回事呢?一般在数据库操作层不都是java类么,这样的话数据源应该有办法在java类里直接使用吧?
    public class DataSourceTest {
    public static void main(String[] args){
    DataSourceTest data=new DataSourceTest();
    Connection conn=data.getConn();
    }

    public Connection getConn(){
    Connection conn=null;
    try{
     
    Context context=new InitialContext(); 
    DataSource ds=(DataSource)context.lookup("java:comp/env/jdbc/mysqlds");
    conn=ds.getConnection();
    if(conn!=null)
    System.out.println("------CONN生成------");
    }catch(Exception e){
    e.printStackTrace();
    }
    return conn;
    }
    }这是我的JAVA测试类
      

  7.   

    连接池是在tomcat服务启动的时候将配置信息读入的,你直接运行java类的话,tomcat池都没有启动,都没有配置信息,它肯定不行了。
      

  8.   

    TOMCAT的自带文档里面有设置的说明,自己看一下吧,有些版本的设置方法不同的,要注意,还是以自带文档中的说明为准吧