We are configuring IBM MQ with JMS by Workato. But we are facing error while connecting to IBM MQ via Workato. Details are given below. Environment: - Workato OPA v33 - IBM MQ Docker (QM1) - Channel: DEV.APP.SVRCONN - com.ibm.mq.allclient.jar deployed under: /usr/lib/workato-agent/lib_ext/ OPA log shows: Caused by: java.lang.NoClassDefFoundError: javax/jms/ConnectionFactory Caused by: java.lang.ClassNotFoundException: javax.jms.ConnectionFactory OPA contains jakarta.jms-api-3.1.0.jar. Please confirm the supported IBM MQ JMS client version for OPA v33 and whether a Jakarta-compatible IBM MQ client library is required.
I believe it is not a firewall issue as we are able to configure others connections like sftp and kafka using same OPA Connections.
Is there any other way we can connect IBM MQ to send and receive messages?
sorry I do not use this tool so i am unsure how it works. i will look into some documentation and see if i can figure it out
The error occurs because IBM MQ's classic JMS Client (WMQInitialContextFactory) requires the legacy javax.jms API, but your On-Premises Agent (OPA) environment currently only has Jakarta JMS 3.0+ (jakarta.jms), which moved from the javax namespace to jakarta. IBM MQ client libraries (specifically version 9.2 and older, or standard v9.3 com.ibm.mq.allclient.jar) expect the javax.jms classes. Here is how to resolve the missing class error. Step-by-Step Fix 1.Download the Legacy javax.jms Library:Required JAR.Download the JMS 2.0 API JAR file containing the javax.jms namespace.
Download javax.jms-api-2.0.1.jar directly from Maven Central (or copy it from your IBM MQ Client installation directory at MQ_HOME/java/lib).
Verification: Confirm the downloaded file is named javax.jms-api-2.0.1.jar (or javax.jms-api-2.0.jar). 2.Add javax.jms and IBM MQ Client to OPA Library Directory:OPA Configuration.Copy the javax.jms-api-2.0.1.jar file along with com.ibm.mq.allclient.jar into the OPA user extensions directory:
Linux/Unix: /opt/workato-agent/ext (or <OPA_INSTALL_DIR>/ext)
Windows: C:\Program Files\Workato Agent\ext (or <OPA_INSTALL_DIR>\ext)
Note: Do not delete jakarta.jms-api-3.1.0.jar if other connectors rely on it, as Java can load both packages side-by-side because javax.jms and jakarta.jms use different package namespaces. Verification: Run ls -l (Linux) or check File Explorer (Windows) in the ext folder to verify both com.ibm.mq.allclient.jar and javax.jms-api-2.0.1.jar are present in the same folder. 3.Restart the Workato On-Premises Agent Service:Apply Changes.Restart the agent service so Java loads the new JAR into the classpath:
Linux: sudo systemctl restart workato-agent (or run ./agent.sh restart)
Windows: Open Services (services.msc), locate Workato On-Premises Agent, and click Restart.
Verification: Open agent.log in the OPA logs/ directory and verify no classpath conflicts or missing class warnings occur during startup. 4.Retest the Connection in Workato:Workato Console.Navigate back to your Workato JMS connection configuration and click Test Connection. Verification: The connection test should pass without returning NoClassDefFoundError: javax/jms/ConnectionFactory.
again i don't use this tool so i cannot verify but this is what Google/AI has to say
Hi, the error suggests a `javax.jms` vs. `jakarta.jms` compatibility issue. OPA v33’s officially supported IBM MQ client version needs to be confirmed with Workato Support.
