我的Tomcat启动的servlet要连接access数据库
在旧电脑上用的Tomcat5.0,jdk1.42 ,一切OK
在新电脑上DSN等等一切设置和旧电脑一样,但是新电脑上用的XP Sp2,Tomcat5.5,jdk1.5
新电脑如果把我的代码以java application的形式做测试连同样的数据源,竟然也一切OK?
问题是新电脑以Tomcat中的servlet来连就找不到数据源了
所以我怀疑问题是出在Tomcat上,Tomcat5.5可能差驱动,奇怪的是5.0不差.
求解决方法或进一步测试的方法.报错 : [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序代码 :(不会有问题,在旧电脑上运行OK)String JDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String conURL = "jdbc:odbc:LyricsInfo";try{
       Class.forName(JDriver);
}catch(ClassNotFoundException e){
       Err += "驱动注册失败:"+e.toString(); 
}try{
       Connection con = DriverManager.getConnection(conURL); 
       Statement s = con.createStatement();
       ……
}catch (SQLException e){
       Err += "SQLException:"+e.toString();
} 还有不会是ODBC数据源管理器中设置的问题,因为以java application的形式可以连上
谢谢,麻烦大家了!

解决方案 »

  1.   

    进一步测试结果,出人意料
    文件目录: D:\Tomcat 5.5\webapps\LRCservlet\LyricsInfo.mdb我放弃用户DSN的方式.采取下面的方式连,结果...
    1)
    String conURL = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=..\\webapps\\LRCservlet\\LyricsInfo.mdb";
    找不到文件,很奇怪2)换总方式:
    String path =new java.io.File(".").getAbsolutePath();
    得到 path 为  D:\Tomcat 5. 更奇怪所以我这样写String conURL = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+path+"5\\webapps\\LRCservlet\\LyricsInfo.mdb";连接成功所以,问题应该是出在Tomcat 5.5这个文件夹的名字上面,他把"."后面的"5"去了那我要怎么写呢?+"5\\webapps\\LRCservlet\\LyricsInfo.mdb" 这样写也太不规范了把..
    采用DSN连接时问题也是因为这吗?要怎么才能通过DSN连呢?
    真要晕拉!
      

  2.   

    那你把那个文件夹安装的时候改路径为tomcat5_5或者tomcat55就是了