Bonita 6.2.3
EC2 Linux
MySQL 5.5
Tomcat 7
When I bring up tomcat 7 I see the following exception in the tomcat 7 logs:
WARNING: Failed to register in JMX: javax.naming.NamingException: Could not create resource factory instance [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]
SEVERE: Error while initializing the Engine
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'recorderSync' defined in file [/usr/share/tomcat7/bonita_home/server/platform/conf/services/platform-cfg.xml]: Cannot resolve reference to bean 'persistenceService' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'persistenceService' defined in file [/usr/share/tomcat7/bonita_home/server/platform/conf/services/cfg-bonita-persistence-hibernate.xml]: Cannot resolve reference to bean 'sequenceManager' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sequenceManager' defined in file [/usr/share/tomcat7/bonita_home/server/platform/conf/services/cfg-bonita-sequence-impl.xml]: Cannot resolve reference to bean 'bonitaSequenceManagerDSJNDI' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bonitaSequenceManagerDSJNDI' defined in file [/usr/share/tomcat7/bonita_home/server/platform/conf/services/cfg-bonita-ds.xml]: Invocation of init method failed; nested exception is javax.naming.NamingException: Could not create resource factory instance [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]
Related cause: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bonitaSequenceManagerDSJNDI' defined in file [/usr/share/tomcat7/bonita_home/server/platform/conf/services/cfg-bonita-ds.xml]: Invocation of init method failed; nested exception is javax.naming.NamingException: Could not create resource factory instance [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:630)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:609)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:469)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140)
at org.bonitasoft.engine.service.impl.AbsoluteFileSystemXmlApplicationContext.<init>(AbsoluteFileSystemXmlApplicationContext.java:41)
at org.bonitasoft.engine.service.impl.SpringPlatformFileSystemBeanAccessor.initializeContext(SpringPlatformFileSystemBeanAccessor.java:81)
at org.bonitasoft.engine.service.impl.SpringPlatformFileSystemBeanAccessor.getContext(SpringPlatformFileSystemBeanAccessor.java:72)
Seems like issue with your config files. Can you share them?
Have you tried Tomcat bundle with MYSQL?
Hello Mark. <br />
I searched for the BasicDataSourceFactory classNotFound error you are having and I found a StackOverflow post regarding that error. <br />
http://stackoverflow.com/questions/14712308/ubuntu-tomcat7-java-lang-classnotfoundexception-org-apache-tomcat-dbcp-dbcp-bas <br />
One of the answers in that posting states that the tomcat-dbcp-7.0.30.jar file is corrupt and another jar file is suggested. <br />
The person who posted the error stated that the new jar fixed his problem. So while I can't say if it will work for you, it might be worth a try. <br />
Caused by: java.lang.RuntimeException: Your bonita.home is corrupted: Folder 'services' not found on tenant /usr/share/tomcat7/bonita_home/server/tenants/1/conf
Something is not right in bonita.home. Can you try following:
1. Drop BonitaDB
2. Recreate DB (or just create a new DB with different name and grants privileges to user account) - make sure to change the DB configration if you change the DB name.
3. remove temp folder from tomcat root
4. Remove tenants/1 folder from BONITA.HOME/client
5. Remove tenants folder from BONITA.HOME/server
6. restart the tomcat server
Also, you may not need this paramter -- you can try without this first - "factory="org.apache.commons.dbcp.BasicDataSourceFactory"
Let me know how it goes.
Here is where I am now. My bonita log shows this:
Mar 13, 2014 4:15:14 PM com.bonitasoft.engine.api.internal.servlet.EngineInitializerListenerSP contextInitialized
<p>
<java>SEVERE: Error while initializing the Engine</java></p>
<p>
<java>org.bonitasoft.engine.platform.StartNodeException: Platform starting failed.</java></p>
<p>
<java> at org.bonitasoft.engine.api.impl.PlatformAPIImpl.startNode(PlatformAPIImpl.java:329)</java></p>
<p>
<java> at com.bonitasoft.engine.api.impl.PlatformAPIExt.startNode(PlatformAPIExt.java:687)</java></p>
<p>
<java> at org.bonitasoft.engine.PlatformTenantManager.updatePlatform(PlatformTenantManager.java:56)</java></p>
<p>
<java> at org.bonitasoft.engine.PlatformTenantManager.startPlatform(PlatformTenantManager.java:63)</java></p>
<p>
<java> at org.bonitasoft.engine.EngineInitializer.startPlatform(EngineInitializer.java:121)</java></p>
<p>
<java> at org.bonitasoft.engine.EngineInitializer.initializeEngine(EngineInitializer.java:86)</java></p>
<p>
<java> at com.bonitasoft.engine.api.internal.servlet.EngineInitializerListenerSP.contextInitialized(EngineInitializerListenerSP.java:38)</java></p>
<p>
<java> at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)</java></p>
<p>
<java> at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)</java></p>
<p>
<java> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)</java></p>
<p>
<java> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)</java></p>
<p>
<java> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)</java></p>
<p>
<java> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)</java></p>
<p>
<java> at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:663)</java></p>
<p>
<java> at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1642)</java></p>
<p>
<java> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)</java></p>
<p>
<java> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)</java></p>
<p>
<java> at java.util.concurrent.FutureTask.run(FutureTask.java:166)</java></p>
<p>
<java> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)</java></p>
<p>
<java> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)</java></p>
<p>
<java> at java.lang.Thread.run(Thread.java:701)</java></p>
<p>
<java>Caused by: java.lang.RuntimeException: Your bonita.home is corrupted: Folder 'services' not found on tenant /usr/share/tomcat7/bonita_home/server/tenants/1/conf</java></p>
<p>
<java> at org.bonitasoft.engine.service.impl.SpringTenantFileSystemBeanAccessor.getResources(SpringTenantFileSystemBeanAccessor.java:45)</java></p>
<p>
<java> at org.bonitasoft.engine.service.impl.SpringTenantFileSystemBeanAccessor.initializeContext(SpringTenantFileSystemBeanAccessor.java:101)</java></p>
<p>
<java> at org.bonitasoft.engine.service.impl.SpringTenantFileSystemBeanAccessor.getContext(SpringTenantFileSystemBeanAccessor.java:84)</java></p>
<p>
<java> at org.bonitasoft.engine.service.impl.SpringTenantFileSystemBeanAccessor.getService(SpringTenantFileSystemBeanAccessor.java:75)</java></p>
<p>
<java> at org.bonitasoft.engine.service.impl.SpringTenantServiceAccessor.getTransactionExecutor(SpringTenantServiceAccessor.java:373)</java></p>
<p>
<java> at org.bonitasoft.engine.api.impl.PlatformAPIImpl.startNode(PlatformAPIImpl.java:278)</java></p>
<p>
<java> ... 20 more</java></p>
<p>
<java>Mar 13, 2014 4:15:26 PM org.bonitasoft.console.common.server.servlet.PlatformTenantListener contextInitialized</java></p>
<p>
<java>SEVERE: Error while initializing the default tenant</java></p>
<p>
<java>org.bonitasoft.engine.platform.NodeNotStartedException: The current node has not been started yet. Method PlatformAPI.startNode() must be called previously.</java></p>
<p>
<java> at org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeAPI(ServerAPIImpl.java:215)</java></p>
<p>
<java> at org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeMethod(ServerAPIImpl.java:107)</java></p>
<p>
<java> at org.bonitasoft.engine.api.impl.ClientInterceptor.invoke(ClientInterceptor.java:88)</java></p>
<p>
<java> at com.sun.proxy.$Proxy6.login(Unknown Source)</java></p>
<p>
<java> at org.bonitasoft.console.common.server.servlet.PlatformTenantListener.initializeDefaultTenant(PlatformTenantListener.java:61)</java></p>
<p>
<java> at org.bonitasoft.console.common.server.servlet.PlatformTenantListener.contextInitialized(PlatformTenantListener.java:44)</java></p>
<p>
<java> at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)</java></p>
<p>
<java> at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)</java></p>
<p>
<java> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)</java></p>
<p>
<java> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)</java></p>
<p>
<java> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)</java></p>
<p>
<java> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)</java></p>
<p>
<java> at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:663)</java></p>
<p>
<java> at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1642)</java></p>
<p>
<java> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)</java></p>
<p>
<java> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)</java></p>
<p>
<java> at java.util.concurrent.FutureTask.run(FutureTask.java:166)</java></p>
<p>
<java> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)</java></p>
<p>
<java> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)</java></p>
<p>
<java> at java.lang.Thread.run(Thread.java:701)</java></p>
This is my msql config in Catalina/localhost/bonita.xml. Adding the factory= line allows me to get further but then I get the exception above about nested transactions.
<Resource name="bonitaSequenceManagerDS"
<p>
<java> auth="Container"</java></p>
<p>
<java> type="javax.sql.DataSource"</java></p>
<p>
<java> maxActive="17"</java></p>
<p>
<java> minIdle="5"</java></p>
<p>
<java> maxWait="10000"</java></p>
<p>
<java> initialSize="3"</java></p>
<p>
<java> maxPoolSize="15"</java></p>
<p>
<java> minPoolSize="3"</java></p>
<p>
<java> maxConnectionAge="0"</java></p>
<p>
<java> maxIdleTime="1800"</java></p>
<p>
<java> maxIdleTimeExcessConnections="120"</java></p>
<p>
<java> idleConnectionTestPeriod="30"</java></p>
<p>
<java> acquireIncrement="3"</java></p>
<p>
<java> validationQuery="SELECT 1"</java></p>
<p>
<java> validationInterval="30000"</java></p>
<p>
<java> testConnectionOnCheckout="true"</java></p>
<p>
<java> removeAbandoned="true"</java></p>
<p>
<java> logAbandoned="true"</java></p>
<p>
<java> username="bonita"</java></p>
<p>
<java> password="bonita"</java></p>
<p>
<java> driverClassName="com.mysql.jdbc.Driver"</java></p>
<p>
<java> factory="org.apache.commons.dbcp.BasicDataSourceFactory"</java></p>
<p>
<java> url="jdbc:mysql://localhost:3306/bonita?dontTrackOpenResources=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/></java></p>
<p>
</p>
When I do that I get this error in the bonita.log:
Mar 12, 2014 6:32:53 PM org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl log
<p class="rteindent1">
<java>SEVERE: We do not support nested calls to the transaction service.</java></p>
<p class="rteindent1">
<java>org.bonitasoft.engine.transaction.STransactionCreationException: We do not support nested calls to the transaction service.</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.begin(JTATransactionServiceImpl.java:60)</java></p>
<p class="rteindent1">
<java> at com.bonitasoft.engine.transaction.JTATransactionServiceExt.executeInTransaction(JTATransactionServiceExt.java:57)</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.execution.TransactionExecutorImpl.execute(TransactionExecutorImpl.java:50)</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.api.impl.PlatformAPIImpl.deleteTenant(PlatformAPIImpl.java:651)</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.api.impl.PlatformAPIImpl.createDefaultTenant(PlatformAPIImpl.java:526)</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.api.impl.PlatformAPIImpl.initializePlatform(PlatformAPIImpl.java:194)</java></p>
<p class="rteindent1">
<java> at com.bonitasoft.engine.api.impl.PlatformAPIExt.initializePlatform(PlatformAPIExt.java:155)</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.api.impl.PlatformAPIImpl.createAndInitializePlatform(PlatformAPIImpl.java:214)</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.PlatformTenantManager.createPlatform(PlatformTenantManager.java:45)</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.EngineInitializer.initPlatform(EngineInitializer.java:114)</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.EngineInitializer.initializeEngine(EngineInitializer.java:81)</java></p>
<p class="rteindent1">
<java> at com.bonitasoft.engine.api.internal.servlet.EngineInitializerListenerSP.contextInitialized(EngineInitializerListenerSP.java:38)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:663)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1642)</java></p>
<p class="rteindent1">
<java> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)</java></p>
<p class="rteindent1">
<java> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)</java></p>
<p class="rteindent1">
<java> at java.util.concurrent.FutureTask.run(FutureTask.java:166)</java></p>
<p class="rteindent1">
<java> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)</java></p>
<p class="rteindent1">
<java> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)</java></p>
<p class="rteindent1">
<java> at java.lang.Thread.run(Thread.java:701)</java></p>
<p class="rteindent1">
<java>Mar 12, 2014 6:32:53 PM org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl log</java></p>
<p class="rteindent1">
<java>WARNING: Unable to create tenant default</java></p>
<p class="rteindent1">
<java>org.bonitasoft.engine.platform.STenantCreationException: Unable to create tenant default</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.api.impl.PlatformAPIImpl.createDefaultTenant(PlatformAPIImpl.java:561)</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.api.impl.PlatformAPIImpl.initializePlatform(PlatformAPIImpl.java:194)</java></p>
<p class="rteindent1">
<java> at com.bonitasoft.engine.api.impl.PlatformAPIExt.initializePlatform(PlatformAPIExt.java:155)</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.api.impl.PlatformAPIImpl.createAndInitializePlatform(PlatformAPIImpl.java:214)</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.PlatformTenantManager.createPlatform(PlatformTenantManager.java:45)</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.EngineInitializer.initPlatform(EngineInitializer.java:114)</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.EngineInitializer.initializeEngine(EngineInitializer.java:81)</java></p>
<p class="rteindent1">
<java> at com.bonitasoft.engine.api.internal.servlet.EngineInitializerListenerSP.contextInitialized(EngineInitializerListenerSP.java:38)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:663)</java></p>
<p class="rteindent1">
<java> at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1642)</java></p>
<p class="rteindent1">
<java> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)</java></p>
<p class="rteindent1">
<java> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)</java></p>
<p class="rteindent1">
<java> at java.util.concurrent.FutureTask.run(FutureTask.java:166)</java></p>
<p class="rteindent1">
<java> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)</java></p>
<p class="rteindent1">
<java> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)</java></p>
<p class="rteindent1">
<java> at java.lang.Thread.run(Thread.java:701)</java></p>
<p class="rteindent1">
<java>Caused by: org.bonitasoft.engine.platform.STenantDeletionException: org.bonitasoft.engine.transaction.STransactionCreationException: We do not support nested calls to the transaction service.</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.api.impl.PlatformAPIImpl.deleteTenant(PlatformAPIImpl.java:668)</java></p>
<p class="rteindent1">
<java> at org.bonitasoft.engine.api.impl.PlatformAPIImpl.createDefaultTenant(PlatformAPIImpl.java:526)</java></p>
<p class="rteindent1">
<java> ... 21 more</java></p>
There was no tenants/1 folder under client. There is no tenants folder under server. I dropped the database and restarted and I have the same error.
Do I have to do something with the client/platform/conf/platform-tenant-config.properties to get it to create something in my tenant dirs? I tried with the settings below and still get no where.
platform.tenant.default.id=1
<p>
<java>platform.tenant.default.username=bonita</java></p>
<p>
<java>platform.tenant.default.password=.......</java></p>
<p>
<java>platform.tenant.default.name=default</java></p>
<p>
<java>platform.username=admin</java></p>
<p>
<java>platform.password=........</java></p>
<p>
<java>platform.tenant.default.username=install</java></p>
<p>
<java>platform.tenant.default.description=The default tenant</java></p>
<p>
<java>platform.tenant.default.use=true</java></p>
<p>
<java>platform.create=false</java></p>
<p>
<java>platform.tenant.create=true</java></p>
<p>
<java>platform.stop=true</java></p>
<p>
<java>platform.tenant.default.password=bpm</java></p>
<p>
<java>platform.start=true</java></p>