How to resolve unable to resolve getByExtId error during maven build process

How to resolve unable to resolve getByExtId error during maven build process

book

Article ID: KB0072105

calendar_today

Updated On:

Products Versions
TIBCO BusinessEvents Enterprise Edition 6.1.1, 6.1.2, 6.1.2, 6.2.x,

Description

In BE version 6.1.1 and above the key based lookup strategy is enabled by default this mode means some of the old catalog functions need to be changed for EAR build process to work. When migrating BE projects with getByExtid() calls and originally built using BE 5.x version or BE projects from 6.0 - 6.1.0 we see error :
"Unable to resolve getByExtId"
or
"Caused by: java.lang.RuntimeException: Function Instance.getByExtId not found. Try validating project before building."
or
"java.lang.Exception: Error while building EAR"

Open the pom.xml and look for the field: <useLegacyId/>, should see the flag in disabled state, like below:

Disabled state:

<configuration>
  <beProjectDetails>
    <beHome>/opt/tibco/be/6.2</beHome>
    <useLegacyId/>
Also, the Legacy property in studio.tra file at BE_HOME/studio/eclipse/configuration, might be commented out:
# Uncomment below properties to change to Legacy ID mode
#be.engine.id.useLegacy=true
#TIBCO.BE.function.catalog.getbykeys=false

 

Issue/Introduction

Unable to resolve getByExtId error during maven build process

Environment

All supported platforms

Resolution

To fix the issue change the pom.xml to enable legacy id field using the field <useLegacyId>true</useLegacyId>, like below:

Enabled state:

<configuration>
  <beProjectDetails>
    <beHome>/opt/tibco/be/6.2</beHome>
    <useLegacyId>true</useLegacyId>

Regenerate the pom.xml.

For studio-tools you need to set the following property in studio-tools.tra for the legacy id usage to be enabled.

java.property.be.engine.id.useLegacy=true

Build should work.

If Legacy property is commented, go to studio.tra file at BE_HOME/studio/eclipse/configuration and ucomment it:

# Uncomment below properties to change to Legacy ID mode
be.engine.id.useLegacy=true
#TIBCO.BE.function.catalog.getbykeys=false
This avoids any Legacy lookup strategy issue in Studio IDE.
 

Additional Information

TIBCO BusinessEvents® Enterprise Edition 6.2.1 Architects Guide: Storage and Retrieval of Entity Objects - Data Lookup Strategies.

https://docs.tibco.com/pub/businessevents-enterprise/6.2.1/doc/html/Architects-Guide/Data-Lookup-Strategies.htm