我在自己机器上数据库连接是好用的,然后,我把打包的文件放到服务器上的Tomcat的webapps下,lib文件下sqljdbc.jar也加上了,但是,怎么执行都出下面的错误javax.servlet.ServletException: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:520)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:427)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
navi_3g.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:79)
原因 org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
navi_3g.action.HelloAction.execute(HelloAction.java:79)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
navi_3g.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:79)

解决方案 »

  1.   

    怀疑你的sqljdbc.jar没有'com.microsoft.sqlserver.jdbc.SQLServerDriver'这个类另外提醒一下
    sqlserver2005和2000的驱动包,driver,url是不一样的。
      

  2.   

    我在网上查了很久,也没碰到答案。
    下面是context.xml的内容,
    <Context>    <!-- Default set of monitored resources -->
        <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Resource
     name="jdbc/NorthWind"
     auth="Container"
     type="javax.sql.DataSource"
     driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
     url="jdbc:sqlserver://192.168.111.111:1433;DatabaseName=AAA"
     username="sa"
     password="AAA"
     maxActive="100"
     maxIdle="30"
     maxWait="1000"/>
        <!-- Uncomment this to disable session persistence across Tomcat restarts -->
        <!--
        <Manager pathname="" />
        -->    <!-- Uncomment this to enable Comet connection tacking (provides events
             on session expiration as well as webapp lifecycle) -->
        <!--
        <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
        --></Context>tomcat 6.0.20
    sqlserver2005恳请懂的朋友给与指教,万分感谢!
      

  3.   

    tomcat6.0.20,驱动包放错地方了.
    D:\apache-tomcat-6.0.20\lib
    放在这就OK了
      

  4.   

    驱动程序包,3个dbcp连接池程序包,要在同一目录下
      

  5.   

    Tomcat配置时连接池驱动包必须放在tomcat目录下的lib里。这是因为Tomcat连接池是在Tomcat启动时就创建了,那里还没有加载项目里的驱动包。我也碰到了这种问题,后面查资料找到的。
      

  6.   

    那就是 打包时候的问题了吗,你看打的包里面有没有这个jar文件
      

  7.   

    sql server的java驱动程序包没有放在tomcat的lib中或者没有放到应用的WEB-INF\lib下
      

  8.   

    commons-collections.jar
    commons-dbcp-1.2.2.jar
    commons-pool-1.5.4.jar
    连接池程序包已经放到C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib下了,但是,还是,不起作用???