Bahmni Install Error - Applications Don't Run

Here’s my installation specification on Azure (after resolving a few undocumented issues): My SQL Server VM:

  • OS: CentOS 7.6
  • My SQL version: 5.6
  • Opened ports: 22, 3306 Bahmni Server VM:
  • OS: CentOS 7.6
  • Opened ports: 22, 80, 443 Bahmni:
  • Version: 0.92
  • Modules: bahmni-emr, bahmni-reports, atomfeed-console

No errors during installation, openmrs & bahmni-reports databases created, and services are running in the app server.

But OpenMRS and Bahmni doesn’t load up from the browser. The openmrs.log files show many errors related to OpenElis even though I didn’t install bahmni-lab. There are some “Bean creation exception” warning messages as well. So, I’m not sure if atom-feed requires bahmni-lab during install.

Here’s a sample warning messages from the log file:

11-12-2019 00:56:35 [WARN ] DefaultListableBeanFactory - Bean creation exception on FactoryBean type check: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘providerService’ defined in class path resource [applicationContext-service.xml]: Cannot resolve reference to bean ‘providerServiceTarget’ while setting bean property ‘target’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘providerServiceTarget’ defined in class path resource [applicationContext-service.xml]: Cannot resolve reference to bean ‘providerDAO’ while setting bean property ‘providerDAO’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘providerDAO’ defined in class path resource [applicationContext-service.xml]: Cannot resolve reference to bean ‘sessionFactory’ while setting bean property ‘sessionFactory’; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name ‘sessionFactory’: FactoryBean which is currently in creation returned null from getObject

Here’s a sample exception related to OpenElis from the log file:

11-12-2019 00:57:03 [ERROR] TimerSchedulerServiceImpl - Failed to schedule task OpenElis Patient Atom Feed Task org.openmrs.scheduler.SchedulerException: could not load class at org.openmrs.scheduler.TaskFactory.createInstance(TaskFactory.java:72) at org.openmrs.scheduler.timer.TimerSchedulerServiceImpl.scheduleTask(TimerSchedulerServiceImpl.java:217) at org.openmrs.scheduler.timer.TimerSchedulerServiceImpl.onStartup(TimerSchedulerServiceImpl.java:107) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy233.onStartup(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:52) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:303) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:61) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.openmrs.aop.LoggingAdvice.invoke(LoggingAdvice.java:121) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy234.onStartup(Unknown Source) at org.openmrs.scheduler.SchedulerUtil.startup(SchedulerUtil.java:52) at org.openmrs.web.Listener.startOpenmrs(Listener.java:269) at org.openmrs.web.WebDaemon$1.run(WebDaemon.java:42) Caused by: java.lang.ClassNotFoundException: org.bahmni.module.elisatomfeedclient.api.task.OpenElisPatientFeedTask at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1320) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1173) at org.openmrs.util.OpenmrsClassLoader.loadClass(OpenmrsClassLoader.java:166) at java.lang.ClassLoader.loadClass(Unknown Source) at org.openmrs.scheduler.TaskFactory.createInstance(TaskFactory.java:51) … 37 more 11-12-2019 00:57:03 [ERROR] TimerSchedulerServiceImpl - Failed to schedule task for class org.bahmni.module.elisatomfeedclient.api.task.OpenElisPatientFeedTask org.openmrs.scheduler.SchedulerException: Failed to schedule task at org.openmrs.scheduler.timer.TimerSchedulerServiceImpl.scheduleTask(TimerSchedulerServiceImpl.java:274) at org.openmrs.scheduler.timer.TimerSchedulerServiceImpl.onStartup(TimerSchedulerServiceImpl.java:107) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy233.onStartup(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:52) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:303) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:61) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.openmrs.aop.LoggingAdvice.invoke(LoggingAdvice.java:121) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy234.onStartup(Unknown Source) at org.openmrs.scheduler.SchedulerUtil.startup(SchedulerUtil.java:52) at org.openmrs.web.Listener.startOpenmrs(Listener.java:269) at org.openmrs.web.WebDaemon$1.run(WebDaemon.java:42) Caused by: org.openmrs.scheduler.SchedulerException: could not load class at org.openmrs.scheduler.TaskFactory.createInstance(TaskFactory.java:72) at org.openmrs.scheduler.timer.TimerSchedulerServiceImpl.scheduleTask(TimerSchedulerServiceImpl.java:217) … 36 more Caused by: java.lang.ClassNotFoundException: org.bahmni.module.elisatomfeedclient.api.task.OpenElisPatientFeedTask at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1320) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1173) at org.openmrs.util.OpenmrsClassLoader.loadClass(OpenmrsClassLoader.java:166) at java.lang.ClassLoader.loadClass(Unknown Source) at org.openmrs.scheduler.TaskFactory.createInstance(TaskFactory.java:51) … 37 more 11-12-2019 00:57:03 [WARN ] OpenmrsUtil - Unable to find a runtime properties file at /openmrs-runtime.properties

I’m not sure why this error would show up since I’ve done a clean install and didn’t install OpenElis. I would appreciate some help since I’ve been trying to install Bahmni for couple of weeks now, and almost ready to give up on this.

Thanks Ahsan