Am trying to connect to the openmrs server using a Java utility to migrate data from OpenMRS 1.8.2 to OpenMRS refrence app 2.6. I have included dependencies in my pom.xml but am having this error.
Exception in thread “AWT-EventQueue-0” java.lang.NoClassDefFoundError: org/openmrs/util/DatabaseUpdateException
at controller.ImportController.(ImportController.java:23)
at view.MigratorJFrame.(MigratorJFrame.java:108)
at view.MigratorJFrame$5.run(MigratorJFrame.java:506)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: org.openmrs.util.DatabaseUpdateException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
… 17 more
ERROR - Context.getServiceContext(250) |2018-05-31 17:04:51,044| serviceContext is null. Creating new ServiceContext()
Exception in thread “Thread-2” org.openmrs.api.APIException: Service not found: interface org.openmrs.messagesource.MessageSourceService
With this new exception it probably means that there’s a deeper root cause exception that you can find in the logs, and you’d need to share. Also, I suggest that if you’re asking for dev help then you should post this in the #dev category (since most developers aren’t watching Local categories that they’re not engaged with).
Thanks @ssmusoke. But what am trying to do is to build a small desktop utility that will migrate data from OpenMRS 1.8.2 to OpenMRS refrence app 2.6. The data models and the concepts are quite different. Am tring to connect the Java Swing app to the refrence app and upload the data in csv format.
Thanks @wyclif. Will love to see it. My fear is that the concept dictionary of the OpenMRS 1.8.2 is very different from the concept dictionary of the OpenMRS reference app 2.7. If the upgrade mechanism will take care of this, I will be very happy to have it. Please can you shear a link? We have over 200+ sites running OpenMRS 1.8.2 and i need something automated and user friendly.
Thanks for sharing @ssmusoke Will take a look. But note that the concept dictionaries for the OpenMRS 1.8.2 is very different from that of the refrence app 2.7 which is now built around openlabconcepts.
Thanks @darius. I just want to write a java program to ;
Read a CSV or XML file exported from OpenMRS 1.8.2
Connect to OpenMRS reference app 2.7 using openlab concepts (different dictionary)
Import the CSV into OpenMRS using openmrs api in batch processing
Validate and reject dirty data.
The utility will be external to OpenMRS and will be discontinued after the imports.
Some of our sites have high patient load and we have about 200+ sites running the OpenMRS 1.8.2.
All I need is a simple class with a main method and a pom.xml file that illustrates basic connection to the refrence app from a standalone lightweigh java app. I am open to learn short cuts and new ideas if this is not nessasary.
@brightoibe as I said, the upgrade scripts will take care of updating the concept related tables and the data will be updated automatically, you don’t have to do it, the reference application assumes a CIEL dictionary and to load that all you need to do is to source the appropriate CIEL SQL dump file.
@brightoibe you should not be worried about the concept dictionary differences, as your app should still work with whatever concepts you have. The concept dictionary is just a reference guide - your data is what matters.