JMS 2.0 support on sol-jms
Spring Boot 3+ is using JMS 2.0 and packages jakarta.jms.* instead of javax.jms.* (check for example:
Thus solace spring boot starters cannot be used with spring boot 3 applications.
Are there any plans to mitigate this obstacle ? Or any way to fix it ?
We are looking to have a roadmap for Spring Boot 3 and Jakarta namespace JMS application in the next week or so. Once this roadmap is available, we will be able to give a better idea of when you can use Spring Boot 3 with Solace.
Until that time, Solace does not recommend upgrading to Spring Framework 6/Boot 3.2
edited January 9 #3
We are looking at a short term workaround that will allow the use of Spring framework 6/Boot 3 with our current JMS 1.1
javaxprovider by making changes to Maven dependencies. We would update our Spring starters to use the workarounds.
Is this an acceptable workaround to get you up and running with Spring 6/Boot 3 while we prepare a
In order to get people up and running with Solace Spring Boot projects while using Spring Framework 6.x or Spring Boot 3.x, Solace is in development of a workaround as we prepare a Solace JMS provider that uses the new
jakartanamespace instead of
This workaround will allow you to use the existing
javax-based Solace JMS provider within a project that uses Spring Framework 6/Boot 3.
This workaround will include:
- new versions of the Solace JMS starter and other projects in the Solace Spring Boot project
- Instructions on changes needed to your application's
- a sample application demonstrating these changes to make it clear how to apply the workaround to your own application
Note: if your application uses multiple JMS providers, perhaps Solace JMS + another vendor provider, in the same project, the non-Solace providers would also need to be
This workaround is going to be available on Feb 17, 2023. This will include the code and docs, as well as the necessary Maven artifacts on the Maven Central Repository.
As for Java 17 being the base for Spring Framework 6/Boot 3, no changes are needed. Solace Spring projects support Java 17 already.
I do not have a date at this time where the workaround will be replaced by a permanent Solace JMS Jakarta artifact. Solace will communicate that as soon as it is known.
Note that this workaround is for the Solace Spring Boot projects only. There are dependency issues within the Solace Spring Cloud projects that are not resolved by this workaround and will be addressed separately. Solace does NOT recommend upgrading to Spring Framework 6/Boot 3 when using the Solace Spring Cloud starters.3
Note that the title of this thread is around support for JMS 2.0, but the support for Spring 6/Boot 3 is not about supporting JMS 2.0. For clarification, the Solace JMS provider is version 1.1 of JMS and supporting Jakarta will not change that.0
The workaround has been released, but we are not doing an announcement as it is officially a workaround and Solace strongly recommends waiting for the permanent solution which would be the release of a Solace JMS provider for Jakarta. This will be coming later this year (no official date as yet).
The workaround requires downgrading certain Spring Boot dependencies and thus is only intended for Solace users who absolutely MUST move to Spring 6/Boot 3 now before the Solace Jakarta JMS release.
If you require the workaround, please log a Solace Support ticket and mention this post.2
kemalerden Member Posts: 1 ✭
I'm looking forward to this. Could you not share the workaround without raising a support ticket? I can't logon to the ticketing system...0
We have created a sample for how to use the work around here: https://github.com/SolaceSamples/solace-samples-spring/tree/sample-jms-downgrade.
Please read the disclaimer.1