When i am trying to connect oracle db to my camunda rest api
Getting exception: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.camunda.bpm.spring.boot.starter.SpringBootProcessApplication$WebApplicationConfiguration’: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.camunda.bpm.spring.boot.starter.SpringBootProcessApplication’: Unsatisfied dependency expressed through field ‘processEngine’; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.camunda.bpm.spring.boot.starter.CamundaBpmAutoConfiguration$ProcessEngineConfigurationImplDependingConfiguration’: Unsatisfied dependency expressed through field ‘processEngineConfigurationImpl’; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘processEngineConfigurationImpl’ defined in class path resource [org/camunda/bpm/spring/boot/starter/CamundaBpmConfiguration.class]: Unsatisfied dependency expressed through method ‘processEngineConfigurationImpl’ parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘camundaDatasourceConfiguration’: Unsatisfied dependency expressed through field ‘transactionManager’; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘org.springframework.transaction.PlatformTransactionManager’ available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
my application.properties are:
server.port = 8080
camunda.bpm.admin-user.id=demo
camunda.bpm.admin-user.password=demo
camunda.bpm.database.jdbc-batch-processing: false
camunda.bpm.database.schema-update= false
camunda.bpm.database.type=oracle
#DataBase Configuration
spring.jpa.database=default
#spring.jpa.hibernate.ddl-auto=create
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
#spring.jpa.generate-ddl=true
spring.jpa.show-sql=true
spring.crits.url= jdbc:oracle:thin:@localhost:2:HOBDB04
spring.crits.username=XXX
spring.crits.password=XXX
spring.crits.driver-class-name=oracle.jdbc.OracleDriver
spring.tibsso.url=jdbc:oracle:thin:@localhost:2:HOBDB04
spring.tibsso.username=XXX
spring.tibsso.password=XXX
spring.tibsso.driver-class-name=oracle.jdbc.OracleDriver
@nehaec24 Welcome to the forum
How did you configured the process engine? Are you able to connect with db client directly with those credentials? Which version of database and drivers are you using?
@aravindhrs
yes i am able to connect with my other spring boot rest api without camunda
i am using Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
@aravindhrs
I want to connect with two schema so, databaseConfig is like below:
DatabasecritsConfig Class:
#Configuration
#EnableTransactionManagement
#EnableJpaRepositories(entityManagerFactoryRef = “critsentityManagerFactory”,transactionManagerRef = “critstransactionManager” , basePackages = {“com.tcs.telecom.hobs.pc.crits.repo”})
public class DatabasecritsConfig {
private static final Logger logger = LoggerFactory.getLogger(DatabasecritsConfig.class);
#Bean(name = "critsdataSource")
#ConfigurationProperties(prefix = "spring.crits")
public DataSource dataSource() {
logger.info("Inside critsdataSource method :::::::::::");
return DataSourceBuilder.create().build();
}
#Bean(name = "critsentityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(
EntityManagerFactoryBuilder builder,
#Qualifier("critsdataSource") DataSource dataSource) {
return builder.dataSource(dataSource)
.persistenceUnit("crits")
.packages(new String[]{"com.tcs.telecom.hobs.pc.crits.entity"})
.build();
}
#Bean(name = "critstransactionManager")
public PlatformTransactionManager transactionManager(
#Qualifier("critsentityManagerFactory") EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
}
and another class DatabasetibssoConfig
#Configuration
#EnableTransactionManagement
#EnableJpaRepositories(entityManagerFactoryRef = “tibssoentityManagerFactory”,transactionManagerRef = “tibssotransactionManager” , basePackages = {“com.tcs.telecom.hobs.pc.tibsso.repo”})
public class DatabasetibssoConfig {
private static final Logger logger = LoggerFactory.getLogger(DatabasetibssoConfig.class);
#Primary
#Bean(name = "tibssodataSource")
#ConfigurationProperties(prefix = "spring.tibsso")
public DataSource dataSource() {
logger.info("Inside tibssodataSource method :::::::::::");
return DataSourceBuilder.create().build();
}
#Primary
#Bean(name = "tibssoentityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(
EntityManagerFactoryBuilder builder,
#Qualifier("tibssodataSource") DataSource dataSource) {
return builder.dataSource(dataSource)
.persistenceUnit("tibsso")
.packages(new String[]{"com.tcs.telecom.hobs.pc.tibsso.entity"})
.build();
}
#Primary
#Bean(name = "tibssotransactionManager")
public PlatformTransactionManager transactionManager(
#Qualifier("tibssoentityManagerFactory") EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
}