title: How do I fix the org.springframework.beans.factory.BeanCreationException error in my Grails application?
body: <p>I am receiving a huge error list when tying to run a grails application. The application worked fine until I migrated the database from MySQL to SQL Server. I used the SQL Server Migration Assistant and everything worked fine there. I also added the sqljdbc4.jar to the lib directory and updated DataSource.groovy to work with SQL Server. I have been trying to solve this problem for days now and would really appreciate your input. I am fairly new to Grails, Databases, Servers, etc. so I apologize if I have not described this error appropriately. </p>
  
  <p>Thank you for your help!</p>
  
  <p>Versions: Grails 1.3.9, JDK 1.7.0_21, NetBeans IDE 7.3.1, and Microsoft SQL Server 2008</p>
  
  <p>This is the error I get when running the grails run-app command:</p>
  
  <pre><code>     context.GrailsContextLoader Error executing bootstraps:
  
       Error creating bean with name 'messageSource': 
       Initialization of bean failed; nested exception is 
       org.springframework.beans.factory.BeanCreationException: 
  
       Error creating bean with name 'transactionManager': 
       Cannot resolve reference to bean 'sessionFactory' 
       while setting bean property'sessionFactory'; nested exception is 
       org.springframework.beans.factory.BeanCreationException: 
  
       Error creating bean with name 'sessionFactory': 
       Cannot resolve reference to bean 'hibernateProperties' 
       while setting bean property 'hibernateProperties'; nested exception is 
       org.springframework.beans.factory.BeanCreationException: 
  
       Error creating bean with name 'hibernateProperties': 
       Cannot resolve reference to bean 'dialectDetector' 
       while setting bean property 'properties' with key [hibernate.dialect]; nested exception is 
       org.springframework.beans.factory.BeanCreationException: 
  
       Error creating bean with name 'dialectDetector': 
       Invocation of init method failed; nested exception is          
       org.springframework.jdbc.support.MetaDataAccessException: 
  
       Error while extracting DatabaseMetaData; nested exception is 
       org.apache.commons.dbcp.SQLNestedException: 
  
       Cannot create PoolableConnectionFactory (Login failed for user 'dev'.)
       org.springframework.beans.factory.BeanCreationException:
  
       Error creating bean with name 'messageSource': 
       Initialization of bean failed; nested exception is          
       org.springframework.beans.factory.BeanCreationException:
  
       Error creating bean with name 'transactionManager': 
       Cannot resolve reference to bean 'sessionFactory' 
       while setting bean property 'sessionFactory'; nested exception is 
       org.springframework.beans.factory.BeanCreationException: 
  
       Error creating bean with name 'sessionFactory': 
       Cannot resolve reference to bean 'hibernateProperties' 
       while setting bean property 'hibernateProperties'; nested exception is 
       org.springframework.beans.factory.BeanCreationException: 
  
       Error creating bean with name 'hibernateProperties': 
       Cannot resolve reference to bean 'dialectDetector' 
       while setting bean property 'properties' with key [hibernate.dialect]; nested exception is          
       org.springframework.beans.factory.BeanCreationException: 
  
       Error creating bean with name 'dialectDetector': 
       Invocation of init method failed; nested exception is 
       org.springframework.jdbc.support.MetaDataAccessException:
  
  
       Error while extracting DatabaseMetaData; nested exception is 
       org.apache.commons.dbcp.SQLNestedException:
  
       Cannot create PoolableConnectionFactory (Login failed for user 'dev'.)
          at org.grails.tomcat.InlineExplodedTomcatServer.doStart(InlineExplodedTomcatServer.groovy:112)
          at org.grails.tomcat.InlineExplodedTomcatServer$doStart.callCurrent(Unknown Source)
          at org.grails.tomcat.TomcatServer.start(TomcatServer.groovy:97)
          at grails.web.container.EmbeddableServer$start.call(Unknown Source)
          at _GrailsRun_groovy$_run_closure5_closure12.doCall(_GrailsRun_groovy:158)
          at _GrailsRun_groovy$_run_closure5_closure12.doCall(_GrailsRun_groovy)
          at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:280)
          at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy)
          at _GrailsRun_groovy$_run_closure5.doCall(_GrailsRun_groovy:149)
          at _GrailsRun_groovy$_run_closure5.call(_GrailsRun_groovy)
          at _GrailsRun_groovy.runInline(_GrailsRun_groovy:116)
          at _GrailsRun_groovy.this$4$runInline(_GrailsRun_groovy)
          at _GrailsRun_groovy$_run_closure1.doCall(_GrailsRun_groovy:59)
          at RunApp$_run_closure1.doCall(RunApp.groovy:33)
          at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
          at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
          at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
          at gant.Gant.withBuildListeners(Gant.groovy:427)
          at gant.Gant.this$2$withBuildListeners(Gant.groovy)
          at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
          at gant.Gant.dispatch(Gant.groovy:415)
          at gant.Gant.this$2$dispatch(Gant.groovy)
          at gant.Gant.invokeMethod(Gant.groovy)
          at gant.Gant.executeTargets(Gant.groovy:590)
          at gant.Gant.executeTargets(Gant.groovy:589)
  
      Caused by: org.springframework.beans.factory.BeanCreationException: 
  
      Error creating bean with name 'transactionManager': 
      Cannot resolve reference to bean 'sessionFactory' 
      while setting bean property 'sessionFactory'; nested exception is 
      org.springframework.beans.factory.BeanCreationException: 
  
      Error creating bean with name 'sessionFactory': 
      Cannot resolve reference to bean 'hibernateProperties' 
      while setting bean property 'hibernateProperties'; nested exception is 
      org.springframework.beans.factory.BeanCreationException: 
  
      Error creating bean with name 'hibernateProperties': 
      Cannot resolve reference to bean 'dialectDetector' 
      while setting bean property 'properties' with key [hibernate.dialect]; nested exception is 
      org.springframework.beans.factory.BeanCreationException: 
  
      Error creating bean with name 'dialectDetector': 
      Invocation of init method failed; nested exception is 
      org.springframework.jdbc.support.MetaDataAccessException: 
  
      Error while extracting DatabaseMetaData; nested exception is 
      org.apache.commons.dbcp.SQLNestedException: 
  
      Cannot create PoolableConnectionFactory (Login failed for user 'dev'.)
          ... 25 more
  
  
  
      Caused by: org.springframework.beans.factory.BeanCreationException: 
  
      Error creating bean with name 'sessionFactory': 
      Cannot resolve reference to bean 'hibernateProperties' 
      while setting bean property 'hibernateProperties'; nested exception is 
      org.springframework.beans.factory.BeanCreationException:
  
      Error creating bean with name 'hibernateProperties': 
      Cannot resolve reference to bean 'dialectDetector' 
      while setting bean property 'properties' with key [hibernate.dialect]; nested 
      exception is org.springframework.beans.factory.BeanCreationException: 
  
      Error creating bean with name 'dialectDetector': 
      Invocation of init method failed; nested exception is 
      org.springframework.jdbc.support.MetaDataAccessException: 
  
      Error while extracting DatabaseMetaData; nested exception is         
      org.apache.commons.dbcp.SQLNestedException: 
  
      Cannot create PoolableConnectionFactory (Login failed for user 'dev'.)
          ... 25 more
  
  
  
      Caused by: org.springframework.beans.factory.BeanCreationException: 
  
      Error creating bean with name 'hibernateProperties': 
      Cannot resolve reference to bean 'dialectDetector' 
      while setting bean property 'properties' with key [hibernate.dialect]; nested exception is 
      org.springframework.beans.factory.BeanCreationException: 
  
      Error creating bean with name 'dialectDetector': 
      Invocation of init method failed; nested exception is 
      org.springframework.jdbc.support.MetaDataAccessException: 
  
      Error while extracting DatabaseMetaData; nested exception is         
      org.apache.commons.dbcp.SQLNestedException: 
  
      Cannot create PoolableConnectionFactory (Login failed for user 'dev'.)
          ... 25 more
  
  
  
      Caused by: org.springframework.beans.factory.BeanCreationException:
  
      Error creating bean with name 'dialectDetector': 
      Invocation of init method failed; nested exception is 
      org.springframework.jdbc.support.MetaDataAccessException:
  
      Error while extracting DatabaseMetaData; nested exception is 
      org.apache.commons.dbcp.SQLNestedException: 
  
      Cannot create PoolableConnectionFactory (Login failed for user 'dev'.)
          ... 25 more
  
  
      Caused by: org.springframework.jdbc.support.MetaDataAccessException: 
  
      Error while extracting DatabaseMetaData; 
      nested exception is org.apache.commons.dbcp.SQLNestedException: 
  
      Cannot create PoolableConnectionFactory (Login failed for user 'dev'.)
          ... 25 more
  
  
      Caused by: org.apache.commons.dbcp.SQLNestedException: 
      Cannot create PoolableConnectionFactory (Login failed for user 'dev'.)
  
          at  org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
          at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
          at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
          at com.sun.proxy.$Proxy10.getMetaData(Unknown Source)
          ... 25 more
  
      Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'dev'.
  
          at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
          at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246)
          at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:83)
          at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2529)
          at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:1905)
          at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
          at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:1893)
          at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
          at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
          at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1045)
          at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
          at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
          at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
          at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
          at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
          at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
          at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
          ... 28 more
  </code></pre>
  
  <p>Here is my DataSource.groovy file</p>
  
  <pre><code>    dataSource {
      pooled = true
      //driverClassName = "com.mysql.jdbc.Driver" (driver for mysql)
      driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver" 
      dialect = "org.hibernate.dialect.SQLServer2008Dialect" 
      username = "dev"
      password = "dev"
      properties {
          maxActive = 30
          maxIdle = 5
          validationQuery = "/* ping */"
          testWhileIdle = true
          timeBetweenEvictionRunsMillis = 10000
          minEvictableIdleTimeMillis = 120000
      }
  }
  
  hibernate {
      cache.use_second_level_cache=true
      cache.use_query_cache=false
      cache.provider_class='net.sf.ehcache.hibernate.EhCacheProvider'
  }
  // environment specific settings
  environments {
      development {
          dataSource {
              dbCreate = "update" // one of 'create', 'create-drop','update'
              //url = "jdbc:mysql://localhost/timesheet_development?autoReconnect=true"
              url = "jdbc:sqlserver://localhost:1433;instanceName=sqlexpress;databaseName=timesheet_development"
          }
      }
      test {
          dataSource {
              dbCreate = "update"
              //url = "jdbc:mysql://localhost/timesheet_test?autoReconnect=true"
              url = "jdbc:sqlserver://localhost:1433;instanceName=sqlexpress;databaseName=timesheet_test"
          }
      }
      production {
          dataSource {
              dbCreate = "update"
              //url = "jdbc:mysql://localhost/timesheet_production?autoReconnect=true"
              url = "jdbc:sqlserver://localhost:1433;instanceName=sqlexpress;databaseName=timesheet_update"
              username = "********"
              password = "********"           
          }
      }
  }
  </code></pre>