Question & Answer
Question
Is there a way to call a CICS Transaction Server for z/OS (CICS TS) transaction from Spring Boot?
Answer
CICS offers the JCICS API to make the equivalent of EXEC CICS calls from Java™. Spring Boot is essentially just a Java application, so you can use the JCICS API in your Spring Boot application when your application is running in CICS JVM server.
From a development perspective, import the com.ibm.cics.server.* API in your Spring Boot application and ensure your build pulls in a dependency on the JCICS API. You can get the JCICS API from the com.ibm.cics.server.jar located on zFS with your CICS installation, or from within the CICS Explorer SDK in Eclipse, or from Maven Central where it is published (along with a Bill of Materials to keep versioning consistent). See topic Developing applications using Maven or Gradle in the CICS TS documentation for the Maven Central coordinates.
The more interesting aspect is actually running the Spring Boot application in CICS Java. There are a number of routes you could use to do this. The first is to manipulate the structure of your Spring Boot application such that it becomes an OSGi bundle, and then deploy the OSGi bundle version of your Spring Boot application to an OSGi JVM server. Be careful to ensure the contents of your application (including third-party jars) do not break OSGi class-loading rules.
The second option is to use a Liberty JVM server and the springBoot-3.0 feature in your server.xml.
Liberty allows you to deploy a fat JAR Spring Boot application using the application type=spring syntax, or you can build the Spring Boot application as a WAR file. In the latter case you need to extend the SpringBootServletInitializer and exclude any embedded Tomcat instance using the following syntax example in Gradle:
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
or in Maven:
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
You have more deployment choices if you build your Spring Boot application as a WAR because it can be deployed either as part of a CICS bundle, or using the standard Liberty application type=war syntax.
Refer to topic Spring Boot applications in the CICS TS documentation for more information about developing Spring Boot applications for use with CICS, as well as their integration options. For a detailed tutorial on developing a Spring Boot app for CICS using Gradle or Maven, and deploying it into a CICS Liberty JVM server, see the Spring Boot Java applications for CICS, Part 1: JCICS, Gradle, and Maven tutorial in IBM Developer.
Product Synonym
CICS/TS CICSTS CICS TS CICS Transaction Server
Was this topic helpful?
Document Information
Modified date:
25 August 2026
UID
dwa1507438