我的编程环境为TOMCAT6.0.13,MYSQL5.0,JBUILDER2006,SERVLET API 2.5,JSDK1.6.0_02-b06,MYSQL的驱动为mysql-connector-java-5.0.7-bin.jar。
在自己的应用程序中的WEB.XML中设置了连接参数:com.mysql.jdbc.Driver,jdbc:mysql://localhost:3306/mysql,root,12345678
在IE中浏览运行出现如下错误:
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Servlet.init() for servlet CreateDBServlet threw exception
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
java.lang.Thread.run(Unknown Source)
root cause java.lang.NullPointerException
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Unknown Source)
org.sunxin.lesson.jsp.bookstore.CreateDBServlet.init(CreateDBServlet.java:22)
javax.servlet.GenericServlet.init(GenericServlet.java:212)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
java.lang.Thread.run(Unknown Source)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.
--------------------------------------------------------------------------------Apache Tomcat/6.0.13

解决方案 »

  1.   

    服务器端错误
    你的servlet中用了
    class.forName()了吗
    可能是这的错误
    查看那个驱动存在吗
      

  2.   

    java.lang.Class.forName(Unknown Source)
    没有驱动吧....还是你驱动写错了?
      

  3.   

    我的驱动写的是com.mysql.jdbc.Driver,应该没错。我将驱动包放到自己的应用程序中LIB目录下了。
      

  4.   

    是不是驱动包放在开发目录的LIB下面,但是没放到部署目录的lib下面?
      

  5.   

    两个都有,开发目录下的WEB-INF下的LIB,TOMCAT安装目录下的LIB,这两个目录下都有驱动包。真邪门!
      

  6.   

    问题出在WEB.XML中,我将连接参数都写在了WEB.XML中,在程序中的INIT()中
            String driverClass=getInitParameter("driverClass");
            url=getInitParameter("url");
            user=getInitParameter("user");
            password=getInitParameter("password");
    就会出现如上错误。我将连接参数直接写在程序中试试,没有问题。
            String driverClass="com.mysql.jdbc.Driver";
            url="jdbc:mysql://localhost:3306/mysql";
            user="root";
            password="12345678";
            try
            {
                Class.forName(driverClass);
            }
            catch(ClassNotFoundException ce)
            {
                throw new UnavailableException("加载数据库驱动失败!");
            }
            原因是什么呢?
      

  7.   

    web.xml配置如下:
    <context-param>
        <param-name>driverClass</param-name>
        <param-value>com.mysql.jdbc.Driver</param-value>
        </context-param>
        <context-param>
        <param-name>url</param-name>
        <param-value>jdbc:mysql://localhost:3306/mysql</param-value>
        </context-param>
        <context-param>
        <param-name>user</param-name>
        <param-value>root</param-value>
        </context-param>
        <context-param>
        <param-name>password</param-name>
        <param-value>12345678</param-value>
        </context-param>
      

  8.   

    强烈要求看
    org.sunxin.lesson.jsp.bookstore.CreateDBServlet.init
    函数的代码...^_^
      

  9.   

    另外,init()函数中取得web.xml中的值是这样子滴::::String value = getServletContext().getInitParameter("driverClass");
      

  10.   

    谢谢你,tongates,问题确实出在这里getServletContext().getInitParameter("driverClass")。刚刚开始学习JAVA,希望能向你学习与交流。结贴。