Child pages
  • OpenEAI EnterpriseObject and MOA Out of Sync or Compatibility Issue
Skip to end of metadata
Go to start of metadata

Summary

EnterpriseObjects are shared among all the services, while different services can use different version/build of the Moa.  When EnterpriseObject are changed, but corresponding Moa are not changed, an "Out of Sync" issue will arise which can cause serious errors.

Solution

A) Use different version of EnterpriseObject when it needs to be changed

B) Update all related services/clients for their corresponding Moa.

 

Example

When a max attribute was added to org.openeai.QueryLanguage, HipaaAuditLogService was updated to use latest openeai.jar.  However, HalsViewer webapp throwed the following exception when its openeai.jar (which has foundation openeai foundation moa) was not updated.

org.openeai.layouts.EnterpriseLayoutException: Error calling getter method for QueryLanguage/Max. Exception: org.openeai.moa.objects.resources.v1_0.QueryLanguage.getMax()
at org.openeai.layouts.EnterpriseLayoutManagerImpl.getValueFromObject(EnterpriseLayoutManagerImpl.java:676)
at org.openeai.layouts.XmlLayout.buildElement(XmlLayout.java:415)
at org.openeai.layouts.XmlLayout.buildElement(XmlLayout.java:558)
at org.openeai.layouts.XmlLayout.buildOutputFromObject(XmlLayout.java:140)
at org.openeai.moa.XmlEnterpriseObjectImpl.buildOutputFromObject(XmlEnterpriseObjectImpl.java:1187)
at org.openeai.moa.XmlEnterpriseObjectImpl.toXmlString(XmlEnterpriseObjectImpl.java:2090)
at edu.emory.oit.halsviewer.server.HalsViewerServiceImpl.getHalEntriesForFilter(HalsViewerServiceImpl.java:734)
at edu.emory.oit.halsviewer.server.HalsViewerServiceImpl.getHalEntryQueryResultForFilter(HalsViewerServiceImpl.java:632)

 

Question:  was this caused by updating of QueryLanguageEO without updating of openeai.jar?  Try to determine the exact compatibility.

NumberEOMOAScenarioResult 
aEO added optional attribute (QueryLanguage/Max)moa not updatedMost common in ESBException (#1) java.lang.NoSuchMethodException: org.openeai.moa.objects.resources.v1_0.QueryLanguage.getMax() 
bEO not updated moa added optional attributeOften happens in Web appElement disappeared when invoke moa.toXmlString()? 
cEO removed optional atribute  moa not upatedsame as b?  
dEO not updated  moa removed optional attributesame as a?  

 

#1

2015-09-01 12:09:20,407 FATAL [Thread-38] - Error calling getter method for QueryLanguage/Max. Exception: org.openeai.moa.objects.resources.v1_0.QueryLanguage.getMax()-XmlEnterpriseObjectImpl.toXmlString2135
org.openeai.layouts.EnterpriseLayoutException: Error calling getter method for QueryLanguage/Max. Exception: org.openeai.moa.objects.resources.v1_0.QueryLanguage.getMax()
at org.openeai.layouts.EnterpriseLayoutManagerImpl.getValueFromObject(EnterpriseLayoutManagerImpl.java:676)
at org.openeai.layouts.XmlLayout.buildElement(XmlLayout.java:415)
at org.openeai.layouts.XmlLayout.buildElement(XmlLayout.java:558)
at org.openeai.layouts.XmlLayout.buildOutputFromObject(XmlLayout.java:140)
at org.openeai.moa.XmlEnterpriseObjectImpl.buildOutputFromObject(XmlEnterpriseObjectImpl.java:1187)
at org.openeai.moa.XmlEnterpriseObjectImpl.toXmlString(XmlEnterpriseObjectImpl.java:2090)
at com.openii.openeai.toolkit.rdbms.persistence.hibernate.DefaultQueryLanguagePlugin.rebuildQueryXeo(DefaultQueryLanguagePlugin.java:164)
at com.openii.openeai.toolkit.rdbms.persistence.hibernate.HibernateMoaPersistenceHelper.executeQuery(HibernateMoaPersistenceHelper.java:88)
at com.openii.openeai.toolkit.rdbms.HibernateRdbmsRequestCommand.execute(HibernateRdbmsRequestCommand.java:206)
at org.openeai.jms.consumer.PointToPointConsumer.handleRequest(PointToPointConsumer.java:519)
at org.openeai.jms.consumer.PointToPointConsumer$RequestTransaction.run(PointToPointConsumer.java:1122)
at org.openeai.threadpool.ThreadPoolImpl$PoolThread.run(ThreadPoolImpl.java:150)
With root cause:
java.lang.NoSuchMethodException: org.openeai.moa.objects.resources.v1_0.QueryLanguage.getMax()
at java.lang.Class.getMethod(Class.java:1605)
at org.openeai.layouts.EnterpriseLayoutManagerImpl.getValueFromObject(EnterpriseLayoutManagerImpl.java:667)
at org.openeai.layouts.XmlLayout.buildElement(XmlLayout.java:415)
at org.openeai.layouts.XmlLayout.buildElement(XmlLayout.java:558)
at org.openeai.layouts.XmlLayout.buildOutputFromObject(XmlLayout.java:140)
at org.openeai.moa.XmlEnterpriseObjectImpl.buildOutputFromObject(XmlEnterpriseObjectImpl.java:1187)
at org.openeai.moa.XmlEnterpriseObjectImpl.toXmlString(XmlEnterpriseObjectImpl.java:2090)
at com.openii.openeai.toolkit.rdbms.persistence.hibernate.DefaultQueryLanguagePlugin.rebuildQueryXeo(DefaultQueryLanguagePlugin.java:164)
at com.openii.openeai.toolkit.rdbms.persistence.hibernate.HibernateMoaPersistenceHelper.executeQuery(HibernateMoaPersistenceHelper.java:88)
at com.openii.openeai.toolkit.rdbms.HibernateRdbmsRequestCommand.execute(HibernateRdbmsRequestCommand.java:206)
at org.openeai.jms.consumer.PointToPointConsumer.handleRequest(PointToPointConsumer.java:519)
at org.openeai.jms.consumer.PointToPointConsumer$RequestTransaction.run(PointToPointConsumer.java:1122)
at org.openeai.threadpool.ThreadPoolImpl$PoolThread.run(ThreadPoolImpl.java:150)

                             

 

     

                         

  • No labels