cancel
Showing results for 
Search instead for 
Did you mean: 

Unknown database error running Junit test

tfrith
Champ on-the-rise
Champ on-the-rise
I have several versions of Alfresco installed.  I only have one running at a time.  They all use the same mysql database so each has a schema called "alfresco<version>" for example alfresco222, alfresco31, etc.

I just created a JUnit Test class much like org.alfresco.repo.props.PropertyValueComponentTest.java that I found in the svn head. See code below.

When I run it I get the stack trace below, essentially saying, "Unknown database 'alfresco' ".

My custom-repository-context.xml specifies:
db.driver=org.gjt.mm.mysql.Driver
db.url=jdbc:mysql://localhost/alfresco222

I really don't know where it is getting this database name ("alfresco") from.

Can anyone help me out?

JUnit class:
package ca.edmontonpublicschools.boxes.versatile.soap;import junit.framework.TestCase;import org.alfresco.util.ApplicationContextHelper;import org.springframework.context.ApplicationContext;public class VersatileSOAPInterfaceTest extends TestCase {        protected ApplicationContext ctx = ApplicationContextHelper.getApplicationContext();   public void testGetBoxByBoxNumber() {      fail("Not yet implemented");   }}‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Stack Trace:
junit.framework.AssertionFailedError: Exception in constructor: testGetBoxByBoxNumber (org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dictionaryRepositoryBootstrap' defined in class path resource [alfresco/core-services-context.xml]: Invocation of init method failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connectionCaused by: org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connectionCaused by: org.hibernate.exception.GenericJDBCException: Cannot open connection   at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)   at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)   at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)   at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)   at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)   at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)   at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)   at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)   at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)   at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:497)   at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:349)   at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:255)   at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:214)   at org.alfresco.util.transaction.SpringAwareUserTransaction.begin(SpringAwareUserTransaction.java:394)   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:297)   at org.alfresco.repo.dictionary.DictionaryRepositoryBootstrap.bootstrap(DictionaryRepositoryBootstrap.java:134)   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)   at java.lang.reflect.Method.invoke(Method.java:597)   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1160)   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1122)   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1085)   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:429)   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:250)   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:247)   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:161)   at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:273)   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346)   at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:92)   at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77)   at org.alfresco.util.ApplicationContextHelper.getApplicationContext(ApplicationContextHelper.java:55)   at ca.edmontonpublicschools.boxes.versatile.soap.VersatileSOAPInterfaceTest.<init>(VersatileSOAPInterfaceTest.java:9)   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)   at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)   at java.lang.reflect.Constructor.newInstance(Constructor.java:513)   at junit.framework.TestSuite.createTest(TestSuite.java:131)   at junit.framework.TestSuite.addTestMethod(TestSuite.java:114)   at junit.framework.TestSuite.<init>(TestSuite.java:75)   at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader.getTest(JUnit3TestLoader.java:102)   at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader.loadTests(JUnit3TestLoader.java:59)   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:445)   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Unknown database 'alfresco')   at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)   at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)   at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)   at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)   … 42 moreCaused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown database 'alfresco'   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:812)   at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3269)   at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1182)   at com.mysql.jdbc.Connection.createNewIO(Connection.java:2644)   at com.mysql.jdbc.Connection.<init>(Connection.java:1531)   at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)   at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)   at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)   at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)   at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)   … 45 more)   at junit.framework.Assert.fail(Assert.java:47)   at junit.framework.TestSuite$1.runTest(TestSuite.java:263)   at junit.framework.TestCase.runBare(TestCase.java:127)   at junit.framework.TestResult$1.protect(TestResult.java:106)   at junit.framework.TestResult.runProtected(TestResult.java:124)   at junit.framework.TestResult.run(TestResult.java:109)   at junit.framework.TestCase.run(TestCase.java:118)   at junit.framework.TestSuite.runTest(TestSuite.java:208)   at junit.framework.TestSuite.run(TestSuite.java:203)   at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)   at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
1 REPLY 1

mrogers
Star Contributor
Star Contributor
"alfresco" is the default value.    So unless you provide your own value then that's the value it will use.

It sounds like your "custom-repository-context.xml is not on the classpath for your Junit test.