本帖最后由 diypyh 于 2012-03-21 20:44:35 编辑

解决方案 »

  1.   

    完整的异常如下:org.hibernate.exception.GenericJDBCException: Cannot open connection
            at org.hibernate.exception.SQLStateConverter.handledNonSpecificException
    (SQLStateConverter.java:126)
            at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.j
    ava:114)
            at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelp
    er.java:66)
            at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelp
    er.java:52)
            at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager
    .java:449)
            at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.
    java:167)
            at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.j
    ava:116)
            at org.hibernate.id.insert.AbstractSelectingDelegate.performInsert(Abstr
    actSelectingDelegate.java:54)
            at org.hibernate.persister.entity.AbstractEntityPersister.insert(Abstrac
    tEntityPersister.java:2176)
            at org.hibernate.persister.entity.AbstractEntityPersister.insert(Abstrac
    tEntityPersister.java:2656)
            at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentit
    yInsertAction.java:71)
            at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
            at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplic
    ate(AbstractSaveEventListener.java:321)
            at org.hibernate.event.def.AbstractSaveEventListener.performSave(Abstrac
    tSaveEventListener.java:204)
            at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId
    (AbstractSaveEventListener.java:130)
            at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGene
    ratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
            at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrR
    equestedId(DefaultSaveEventListener.java:56)
            at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTran
    sient(DefaultSaveOrUpdateEventListener.java:195)
            at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(
    DefaultSaveEventListener.java:50)
            at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpda
    te(DefaultSaveOrUpdateEventListener.java:93)
            at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:563)
            at org.hibernate.impl.SessionImpl.save(SessionImpl.java:551)
            at org.hibernate.impl.SessionImpl.save(SessionImpl.java:547)
            at com.pyh.iask.dao.impl.UserDAOImpl.doRegister(UserDAOImpl.java:14)
            at com.pyh.iask.struts.action.UserAction.register(UserAction.java:61)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchActio
    n.java:269)
            at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:
    170)
            at org.apache.struts.action.RequestProcessor.processActionPerform(Reques
    tProcessor.java:425)
            at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
    va:228)
            at org.apache.struts.action.ActionServlet.process(ActionServlet.java:191
    3)
            at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:290)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:206)
            at com.pyh.iask.filter.EncodingFilter.doFilter(EncodingFilter.java:24)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:206)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
    alve.java:233)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
    alve.java:191)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:128)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:102)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:109)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
    a:286)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
    :845)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
    ss(Http11Protocol.java:583)
            at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:44
    7)
            at java.lang.Thread.run(Thread.java:619)
    Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC dr
    iver of class '' for connect URL 'null'
            at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDat
    aSource.java:1150)
            at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSo
    urce.java:880)
            at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.
    getConnection(LocalDataSourceConnectionProvider.java:81)
            at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager
    .java:446)
            ... 47 more
    Caused by: java.lang.NullPointerException
            at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
            at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
            at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
            at java.sql.DriverManager.getDriver(DriverManager.java:253)
            at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDat
    aSource.java:1143)
            ... 50 more
      

  2.   

    Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC dr
    iver of class '' for connect URL 'null'
     说明在启动的时候没有找到url 驱动路径,也就是说你在tomcat中配置<Context path="/iaskdemo" docBase="C:\Documents and Settings\Administrator\Workspaces\MyEclipse 9\IaskDemo\WebRoot"
                    debug="5" reloadable="true" crossContext="true">
             
                 <Logger className="org.apache.catalina.logger.FileLogger"
                             prefix="localhost_MysqlTest_log." suffix=".txt"
                             timestamp="true"/>
                             
                <Resource name="jdbc/iask"  auth="Container" type="javax.sql.DataSource"/>
                
                <ResourceParams name="jdbc/iask">
                    <parameter>
                        <name>factory</name>
                        <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
                    </parameter>
                    <parameter>
                        <name>maxActive</name>
                        <value>100</value>
                    </parameter>
                    <parameter>
                        <name>maxIdle</name>
                        <value>30</value>
                    </parameter>
                    <parameter>
                        <name>maxWait</name>
                        <value>5000</value>
                    </parameter>
                    <parameter>
                        <name>username</name>
                        <value>root</value>
                    </parameter>
                    <parameter>
                        <name>password</name>
                        <value>mysqladmin</value>
                    </parameter>
                    <parameter>
                        <name>driverClassName</name>
                        <value>org.gjt.mm.mysql.Driver</value>
                    </parameter>
                    <parameter>
                        <name>url</name>
                        <value>jdbc:mysql://localhost:3306/iask</value>
                    </parameter>
                  </ResourceParams>
            </Context>没有起作用。我怀疑的</ResourceParams>
    是不是应该配置到 <Resource>中啊