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
- 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. - 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.jarfound inamazon/third-party/lib. - Remove the conflicting library from the plugin's directory to resolve the conflict.
- 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.