Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-14748

Invoice example doesn't work on WebSphere Liberty

      Environment (Required on creation):

      WebSphere Liberty 22.0.0.3

      Description (Required on creation; please attach any relevant screenshots, stacktraces, log files, etc. to the ticket):

      The Camunda invoice example process application is not deployed correctly on WebSphre Liberty.

      Steps to reproduce (Required on creation):

      1. Place the camunda-invoce-example-*.war in the Liberty apps/ directory.
      2. In the server.xml reference the Invoce example as a webApplication.

      Observed Behavior (Required on creation):

      The Invoice example process application is not deployed.

      Expected behavior (Required on creation):

      The Invoice

      Root Cause (Required on prioritization):

      The Camunda invoice example is a Camunda process application that extends the ServletProcessApplication class.

      Process applications extending the ServletProcessApplication class rely on the ServletContainerInitializer Servlet 3.0 API to get deployed.

      WebSphere Liberty has a bug with the implementation of ServletContainerInitializer (ref).

      Solution Ideas (Optional):

      Adding a web.xml to the WEB-INF/ directory of the invoice example .war makes Liberty pick up & deploy the process application correctly.

      Hints (optional):

      ServletProcessApplications are not fully supported by Java EE containers (see: https://docs.camunda.org/manual/latest/user-guide/process-applications/the-process-application-class/#using-the-servletprocessapplication-inside-an-ejb-java-ee-container-such-as-wildfly). As a Java EE container, Liberty should use EjbProcessApplications.

        This is the controller panel for Smart Panels app

            [CAM-14748] Invoice example doesn't work on WebSphere Liberty

            Nikola Koevski added a comment - - edited

            Solution:

            I am closing this issue since the solution was the following:

            ServletProcessApplicationDeployer, the ServletContainerInitializer implementation that deploys ServletProcessApplications. relies on Java SPI.

            To enable Java SPI in WAS Liberty, the bells-1.1 Liberty feature needs to be enabled, and the library containing an SPI referrenced (e.g. <bell libraryRef="Camunda"/>) inside the server.xml file.

            See this post for more details.

            Nikola Koevski added a comment - - edited Solution: I am closing this issue since the solution was the following: ServletProcessApplicationDeployer , the ServletContainerInitializer implementation that deploys ServletProcessApplications . relies on Java SPI. To enable Java SPI in WAS Liberty, the bells-1.1 Liberty feature needs to be enabled, and the library containing an SPI referrenced (e.g. <bell libraryRef="Camunda"/> ) inside the server.xml file. See this post for more details.

              nikola.koevski Nikola Koevski
              nikola.koevski Nikola Koevski
              Nikola Koevski Nikola Koevski
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: