Supported Environments

The Solace Messaging API for Jakarta Messaging (formerly JMS) and the Solace Messaging API for JMS are compatible with any version of the Oracle JDK or OpenJDK that is in active support and also has security update support. For information about the supported versions, see the Oracle Java SE Support Roadmap.

For API-specific environment information:

Solace Jakarta Messaging API

The Solace Jakarta Messaging API is the modern, recommended API for new development using the jakarta.jms namespace.

Using the jakarta.jms Namespace

The Solace Jakarta Messaging API, version 10.30 supports the jakarta.jms API namespace. This enables your applications to take advantage of Spring version 6.0 features. For information about Spring version 6.0 see their documentation page at Spring Framework Documentation.

To use the Solace Jakarta Messaging API:

  1. Include the sol-jms-jakarta artifactID in the dependencies in your Maven project. This automatically uses version 3.1.0 of the Jakarta JMS API. You can also download the artifact from the Maven Central repository at Solace Jakarta Messaging API.

  2. In your application's code, you need to replace all import statements that use javax.jms.* with jakarta.jms.*.

    • For example, change the incorrect statement of:

      import javax.jms.Message;
    • To the correct import statement for the Jakarta JMS namespace:

      import jakarta.jms.Message;
  3. (Optional) To upgrade your application to use Spring Boot versions 3.0 and later, you also need to include the Solace Spring Boot Starter as a dependency in your application. Adding this dependency automatically imports sol-jms-jakarta, and you can download the artifact here at Solace Spring Boot Starter JMS. For information about upgrading to Spring Boot version 3.0, see Preparing for Spring Boot 3.0. For a guide on how to use Spring Boot auto-configuration with the Solace Jakarta Messaging API, see Spring Boot Auto-Configuration for the Solace Jakarta Messaging API on the Solace GitHub page.

The Solace Jakarta Messaging API cannot be used with Spring versions lower than 6.0.0 (or its release candidates) and Spring Boot versions lower than 3.0.0 (or its release candidates).

Solace JCA Resource Adapter for Jakarta Messaging

For Jakarta EE application server environments, Solace provides the Solace JCA Resource Adapter for Jakarta Messaging to integrate the Solace Jakarta Messaging API with application servers.

The Solace JCA Resource Adapter for Jakarta Messaging (sol-jms-jakarta-ra-<version>.rar) is compatible with Jakarta EE application servers. This release has been tested and is supported on:

  • WildFly 27 and later (including WildFly 35)
  • Red Hat JBoss EAP 8 and later

While the adapter may work with other Jakarta EE 9+ compliant application servers, those platforms have not been validated for this release.

Maven coordinates:

<dependency>
    <groupId>com.solacesystems</groupId>
    <artifactId>sol-jms-jakarta-ra</artifactId>
    <version>10.30.0</version>
</dependency>

For comprehensive information about the Jakarta-based resource adapter, including installation, configuration, and usage examples, see Solace JCA Resource Adapter for Jakarta Messaging Overview.

Solace JMS API

The Solace JMS API is the legacy API for existing applications using the javax.jms namespace and remains fully supported.

JMS 2.0 Dependency

As of version 10.20, the Solace JMS API is dependent on JMS 2.0. This dependency allows for compatibility with current and future versions of JMS. Solace does not currently provide implementation for any methods or interfaces introduced in JMS 2.0. You must continue to use JMS 1.1 methods and interfaces in your applications. If you use Maven or Gradle when you build your application, it automatically downloads the Geronimo JMS 2.0 jar file and you do not need to make any other changes. If you do not use a build tool with dependency management, you need to manually add the Geronimo JMS 2.0 jar file to your project. You can download this file from Maven Central at Apache Geronimo JMS Spec 2.0.

If you use the Solace JMS API with the Karaf framework versions 4.1 and earlier, you must put the geronimo-jms_2.0_spec-1.0-alpha-2.jar file in your deploy folder to load the Solace JMS API. If you use the Karaf framework (versions 4.2 and later), changes are not required in your deploy folder because it includes JMS 2.0.

Support for Geronimo JMS 1.1

For version 10.20 and later of the Solace JMS API, you need to use a Solace JMS compatibility layer to allow backwards compatibility with applications that must include the Geronimo JMS 1.1 dependency (geronimo-jms_1.1_spec) or applications that cannot use JMS 2.0. If you build your project with Maven, you must add dependencies, see Building Jakarta Messaging and JMS Projects with Maven. If you do not use Maven, add the Solace JMS compatibility layer (sol-jms-compat-1.1) into your project's CLASSPATH, which you can download from our Maven Central repository at Solace Compatibility Layer For Apache Geronimo JMS Spec 1.1.

Solace JCA Resource Adapter for JMS

For Java EE application server environments, Solace provides the Solace JCA Resource Adapter for JMS to integrate the Solace JMS API with application servers.

The Solace JCA Resource Adapter for JMS (sol-jms-ra-<version>.rar) is compatible with Java EE application servers, including:

  • WebSphere Application Server Traditional
  • Oracle WebLogic Server 14.1.1 and earlier
  • Red Hat JBoss EAP 7
  • WildFly 26 and earlier
  • Apache Tomcat 9
  • Eclipse GlassFish 5

Maven coordinates:

<dependency>
    <groupId>com.solacesystems</groupId>
    <artifactId>sol-jms-ra</artifactId>
    <version>10.30.0</version>
</dependency>

For more information, see Using the API in JEE Environments.