Migrating Java web applications to run in Liberty JVM server

If you have a Java™ web application running in a Liberty profile instance that accesses CICS® over a network, you can run the application in a Liberty JVM server to optimize performance.

About this task

CICS supports a subset of the features that are available in the Liberty profile. All of the core web container API (such as JSP and servlet) are supported along with many of the common Java EE API and capabilities. For a list of supported features in CICS integrated-mode Liberty, see Liberty features.

If your application uses security, you can continue to use Liberty security features however without further action it is possible that the CICS task will run under transaction CJSA, URIMAP matching in CICS will not be available and any resource access will be performed under the CICS default userid. To better integrate your security solution with CICS, allowing your CICS tasks to run under the same userid as determined by Liberty, see Authorizing users to run applications in a Liberty JVM server.

Procedure

  1. Update the application to use the JCICS API to access CICS services directly, ensuring that the correct JCICS encoding is used when the application passes data to and from CICS.
    For more information about encoding, see Data encoding. This step only applies if you are using CICS integrated-mode Liberty or CICS standard-mode Liberty with the run as CICS API.
  2. If you want to use CICS security for basic authentication, update the security constraint in the web.xml file of the dynamic web project to use a CICS role for authentication. This step only applies if you are using CICS integrated-mode Liberty or CICS standard-mode Liberty and submiting work to the CICSExecutorService using the runAsCICS() method.
    <auth-constraint>
         <description>All authenticated users of my application</description>
         <role-name>cicsAllAuthenticated</role-name>
       </auth-constraint>
  3. Package the application as a WAR (Dynamic Web Project), an EBA (OSGi application project) file or an EAR (Enterprise Archive) file, in a CICS bundle.
    CICS bundles are a unit of deployment for an application. All CICS resources in the bundle are dynamically installed and managed together. Create CICS bundle projects for application components that you want to manage together.
  4. Deploy the CICS bundle projects to zFS and install the CICS bundles in the Liberty JVM server.

Results

The application is running in a JVM server.