Tomcat 7 : NamingException ClassNotFoundException tomcat.dbcp.dbcp.BasicDataSourceFactory

1
0
-1

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)

Comments

Submitted by mark.stephens on Thu, 03/13/2014 - 22:19

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

SEVERE: Error while initializing the Engine

org.bonitasoft.engine.platform.StartNodeException: Platform starting failed.

    at org.bonitasoft.engine.api.impl.PlatformAPIImpl.startNode(PlatformAPIImpl.java:329)

    at com.bonitasoft.engine.api.impl.PlatformAPIExt.startNode(PlatformAPIExt.java:687)

    at org.bonitasoft.engine.PlatformTenantManager.updatePlatform(PlatformTenantManager.java:56)

    at org.bonitasoft.engine.PlatformTenantManager.startPlatform(PlatformTenantManager.java:63)

    at org.bonitasoft.engine.EngineInitializer.startPlatform(EngineInitializer.java:121)

    at org.bonitasoft.engine.EngineInitializer.initializeEngine(EngineInitializer.java:86)

    at com.bonitasoft.engine.api.internal.servlet.EngineInitializerListenerSP.contextInitialized(EngineInitializerListenerSP.java:38)

    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)

    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)

    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)

    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)

    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)

    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:663)

    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1642)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

    at java.util.concurrent.FutureTask.run(FutureTask.java:166)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

    at java.lang.Thread.run(Thread.java:701)

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

    at org.bonitasoft.engine.service.impl.SpringTenantFileSystemBeanAccessor.getResources(SpringTenantFileSystemBeanAccessor.java:45)

    at org.bonitasoft.engine.service.impl.SpringTenantFileSystemBeanAccessor.initializeContext(SpringTenantFileSystemBeanAccessor.java:101)

    at org.bonitasoft.engine.service.impl.SpringTenantFileSystemBeanAccessor.getContext(SpringTenantFileSystemBeanAccessor.java:84)

    at org.bonitasoft.engine.service.impl.SpringTenantFileSystemBeanAccessor.getService(SpringTenantFileSystemBeanAccessor.java:75)

    at org.bonitasoft.engine.service.impl.SpringTenantServiceAccessor.getTransactionExecutor(SpringTenantServiceAccessor.java:373)

    at org.bonitasoft.engine.api.impl.PlatformAPIImpl.startNode(PlatformAPIImpl.java:278)

    ... 20 more

Mar 13, 2014 4:15:26 PM org.bonitasoft.console.common.server.servlet.PlatformTenantListener contextInitialized

SEVERE: Error while initializing the default tenant

org.bonitasoft.engine.platform.NodeNotStartedException: The current node has not been started yet. Method PlatformAPI.startNode() must be called previously.

    at org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeAPI(ServerAPIImpl.java:215)

    at org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeMethod(ServerAPIImpl.java:107)

    at org.bonitasoft.engine.api.impl.ClientInterceptor.invoke(ClientInterceptor.java:88)

    at com.sun.proxy.$Proxy6.login(Unknown Source)

    at org.bonitasoft.console.common.server.servlet.PlatformTenantListener.initializeDefaultTenant(PlatformTenantListener.java:61)

    at org.bonitasoft.console.common.server.servlet.PlatformTenantListener.contextInitialized(PlatformTenantListener.java:44)

    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)

    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)

    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)

    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)

    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)

    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:663)

    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1642)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

    at java.util.concurrent.FutureTask.run(FutureTask.java:166)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

    at java.lang.Thread.run(Thread.java:701)

3 answers

1
0
-1

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.

Comments

Submitted by mark.stephens on Thu, 03/13/2014 - 23:20

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

platform.tenant.default.username=bonita

platform.tenant.default.password=.......

platform.tenant.default.name=default

platform.username=admin

platform.password=........

platform.tenant.default.username=install

platform.tenant.default.description=The default tenant

platform.tenant.default.use=true

platform.create=false

platform.tenant.create=true

platform.stop=true

platform.tenant.default.password=bpm

platform.start=true

1
0
-1

Hello Mark.

I searched for the BasicDataSourceFactory classNotFound error you are having and I found a StackOverflow post regarding that error.

http://stackoverflow.com/questions/14712308/ubuntu-tomcat7-java-lang-classnotfoundexception-org-apache-tomcat-dbcp-dbcp-bas

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.

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.

Comments

Submitted by mark.stephens on Thu, 03/13/2014 - 01:06

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

SEVERE: We do not support nested calls to the transaction service.

org.bonitasoft.engine.transaction.STransactionCreationException: We do not support nested calls to the transaction service.

    at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.begin(JTATransactionServiceImpl.java:60)

    at com.bonitasoft.engine.transaction.JTATransactionServiceExt.executeInTransaction(JTATransactionServiceExt.java:57)

    at org.bonitasoft.engine.execution.TransactionExecutorImpl.execute(TransactionExecutorImpl.java:50)

    at org.bonitasoft.engine.api.impl.PlatformAPIImpl.deleteTenant(PlatformAPIImpl.java:651)

    at org.bonitasoft.engine.api.impl.PlatformAPIImpl.createDefaultTenant(PlatformAPIImpl.java:526)

    at org.bonitasoft.engine.api.impl.PlatformAPIImpl.initializePlatform(PlatformAPIImpl.java:194)

    at com.bonitasoft.engine.api.impl.PlatformAPIExt.initializePlatform(PlatformAPIExt.java:155)

    at org.bonitasoft.engine.api.impl.PlatformAPIImpl.createAndInitializePlatform(PlatformAPIImpl.java:214)

    at org.bonitasoft.engine.PlatformTenantManager.createPlatform(PlatformTenantManager.java:45)

    at org.bonitasoft.engine.EngineInitializer.initPlatform(EngineInitializer.java:114)

    at org.bonitasoft.engine.EngineInitializer.initializeEngine(EngineInitializer.java:81)

    at com.bonitasoft.engine.api.internal.servlet.EngineInitializerListenerSP.contextInitialized(EngineInitializerListenerSP.java:38)

    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)

    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)

    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)

    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)

    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)

    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:663)

    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1642)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

    at java.util.concurrent.FutureTask.run(FutureTask.java:166)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

    at java.lang.Thread.run(Thread.java:701)

Mar 12, 2014 6:32:53 PM org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl log

WARNING: Unable to create tenant default

org.bonitasoft.engine.platform.STenantCreationException: Unable to create tenant default

    at org.bonitasoft.engine.api.impl.PlatformAPIImpl.createDefaultTenant(PlatformAPIImpl.java:561)

    at org.bonitasoft.engine.api.impl.PlatformAPIImpl.initializePlatform(PlatformAPIImpl.java:194)

    at com.bonitasoft.engine.api.impl.PlatformAPIExt.initializePlatform(PlatformAPIExt.java:155)

    at org.bonitasoft.engine.api.impl.PlatformAPIImpl.createAndInitializePlatform(PlatformAPIImpl.java:214)

    at org.bonitasoft.engine.PlatformTenantManager.createPlatform(PlatformTenantManager.java:45)

    at org.bonitasoft.engine.EngineInitializer.initPlatform(EngineInitializer.java:114)

    at org.bonitasoft.engine.EngineInitializer.initializeEngine(EngineInitializer.java:81)

    at com.bonitasoft.engine.api.internal.servlet.EngineInitializerListenerSP.contextInitialized(EngineInitializerListenerSP.java:38)

    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)

    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)

    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)

    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)

    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)

    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:663)

    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1642)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

    at java.util.concurrent.FutureTask.run(FutureTask.java:166)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

    at java.lang.Thread.run(Thread.java:701)

Caused by: org.bonitasoft.engine.platform.STenantDeletionException: org.bonitasoft.engine.transaction.STransactionCreationException: We do not support nested calls to the transaction service.

    at org.bonitasoft.engine.api.impl.PlatformAPIImpl.deleteTenant(PlatformAPIImpl.java:668)

    at org.bonitasoft.engine.api.impl.PlatformAPIImpl.createDefaultTenant(PlatformAPIImpl.java:526)

    ... 21 more

1
0
-1

Seems like issue with your config files. Can you share them?

Have you tried Tomcat bundle with MYSQL?

Comments

Submitted by mark.stephens on Thu, 03/13/2014 - 01:10

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"

              auth="Container"

              type="javax.sql.DataSource"

              maxActive="17"

              minIdle="5"

              maxWait="10000"

              initialSize="3"

              maxPoolSize="15"

              minPoolSize="3"

              maxConnectionAge="0"

              maxIdleTime="1800"

              maxIdleTimeExcessConnections="120"

              idleConnectionTestPeriod="30"

              acquireIncrement="3"

              validationQuery="SELECT 1"

              validationInterval="30000"

              testConnectionOnCheckout="true"

              removeAbandoned="true"

              logAbandoned="true"

              username="bonita"

              password="bonita"

              driverClassName="com.mysql.jdbc.Driver"

              factory="org.apache.commons.dbcp.BasicDataSourceFactory"

              url="jdbc:mysql://localhost:3306/bonita?dontTrackOpenResources=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>

Notifications