Issue

During the execution of a process or a mapping in Semarchy xDI that includes additional plugins (such as AWS or ElasticSearch), you may encounter an error message stating "Class not found" or "Method not found".

For example:

com.indy.engine.common.exceptions.EngineExceptionI: A class was not found in the engine, contact your supplier

at com.indy.engine.action.common.ActionCodeTypeI.executeCode(SourceFile:1724)

at com.indy.engine.action.common.ActionCodeTypeI.run(SourceFile:1852)

at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger

at javax.mail.Session.initLogger(Session.java:227)

at javax.mail.Session.<init>(Session.java:212)

at javax.mail.Session.getInstance(Session.java:248)

at com.indy.engine.actionCodes.SendMailActionCodeI.executeSimpleCode(SourceFile:326)

at com.indy.engine.action.common.ActionCodeTypeI.executeCode(SourceFile:1693)

Cause

This issue typically arises due to conflicting Java libraries within your runtime installation. Some plugins may include their own set of Java libraries that conflict with those already present in your Semarchy xDI installation.

Solution

  1. Identify the conflicting library. For example, if the error message indicates a missing class like com/sun/mail/util/MailLogger, it may be due to a library included with a plugin, such as the Amazon AWS SDK.
  2. Locate the conflicting library file in your plugin's directory. In the case of the AWS SDK, the file might be javax.mail-api-1.4.6.jar found in amazon/third-party/lib.
  3. Remove the conflicting library from the plugin's directory to resolve the conflict.
  4. Restart the Semarchy xDI runtime to ensure the changes take effect.

Note: Ensure that you validate the specific libraries used in your version of Semarchy xDI, as library conflicts can vary based on the plugins and versions in use.