Magnolia 5.7 reached extended end of life on May 31, 2022. Support for this branch is limited, see End-of-life policy. Please note that to cover the extra maintenance effort, this EEoL period is a paid extension in the life of the branch. Customers who opt for the extended maintenance will need a new license key to run future versions of Magnolia 5.7. If you have any questions or to subscribe to the extended maintenance, please get in touch with your local contact at Magnolia.

The IBM WebSphere Compatibility module is an Enterprise Edition module that provides a servlet for the IBM WebSphere application server to accept requests. With other application servers, Magnolia uses its filter chain with no specific endpoint. In Magnolia 5.5, IBM WebSphere 9 works with the WebSphere Compatibility module.

Installing

Maven is the easiest way to install the module. Add the following to your bundle. The parent POM of your webapp project should set the latest version of the module automatically. Should you need to use a specific module version, you can define it using the <version/> in the dependency.

Error rendering macro 'artifact-maven-dependencies-snippet-macro'

com.sun.jersey.api.client.ClientHandlerException: A message body reader for Java class info.magnolia.sys.confluence.plugin.artifactinfo.nexus.entities.SearchNGResponse, and Java type class info.magnolia.sys.confluence.plugin.artifactinfo.nexus.entities.SearchNGResponse, and MIME media type application/octet-stream was not found

Pre-built JARs are also available for download. See Installing a module for help.

  • Error rendering macro 'artifact-resource-macro'

    com.sun.jersey.api.client.ClientHandlerException: A message body reader for Java class info.magnolia.sys.confluence.plugin.artifactinfo.nexus.entities.SearchNGResponse, and Java type class info.magnolia.sys.confluence.plugin.artifactinfo.nexus.entities.SearchNGResponse, and MIME media type application/octet-stream was not found

Adding the servlet to web.xml

If you downloaded the prebundled IBM WebSphere war file, skip this step:

  1. Make sure the magnolia-module-websphere jar file is your webapp's WEB-INF/lib directory.
  2. Edit the web.xml file, and add the following Servletdefinition:

    <servlet>
      <description>Spool servlet</description>
      <servlet-name>Spool</servlet-name>
      <servlet-class>info.magnolia.module.websphere.Spool</servlet-class>
      <init-param>
        <param-name>Path</param-name>
        <param-value>/docroot</param-value>
      </init-param>
    </servlet>
    <servlet-mapping>
      <servlet-name>Spool</servlet-name>
      <url-pattern>/*</url-pattern>
    </servlet-mapping>
    

    Note that the Servlet must be mapped to serve /*, but you can adapt the Path parameter to allow it to serve other static resources from your webapp.

Deploying via IBM WebSphere Administration Console

  1. Rename the war file to magnoliaAuthor, magnoliaPublic, or to a name that matches a configuration name of your choice.
  2. Deploy the archive(s) through the IBM WebSphere administration console. (See the IBM WebSphere documentation for precise instructions.)

Setting up JAAS Authentication for Magnolia

Refer also to the IBM WebSphere JAAS documentation: Login configuration for Java Authentication and Authorization Service.

  1. In the IBM WebSphere Application Server, select Security > Global Security in the left panel.
  2. Under Authentication, select Java Authentication and Authorization Service > Application logins.
  3. Add the Magnolia login module:
    1. Add alias: magnolia.
      1. Add class info.magnolia.jaas.sp.jcr.JCRAuthenticationModule as REQUISITE.
      2. Add class info.magnolia.jaas.sp.jcr.JCRAuthorizationModule as REQUIRED.

Disabling Contexts and Dependency Injection 1.2

  1. In the IBM WebSphere Application Server, expand Servers > Server Types and select WebSphere application servers in the left panel.
  2. In the right panel under Application servers select <server name>.
  3. Under Server Infrastructure expand Java and Process Management and select Process definition > Java Virtual Machine > Custom properties.
  4. Add new properties:
    1. Name: com.ibm.ws.cdi.enableCDI, value: false.
    2. Name: com.ibm.ws.cdi.enableImplicitBeanArchives, value: false.

Disabling WebSphere's built-in JAX-RS

  1. In the IBM WebSphere Application Server expand: Servers > Server Types and select WebSphere application servers in the left panel.
  2. In the right panel, select <server name> under Application servers.
  3. Under Server Infrastructure, expand Java and Process Management and select Process definition > Java Virtual Machine > Custom properties.
  4. Add a new property:
    • Name: com.ibm.websphere.jaxrs.server.DisableIBMJAXRSEngine, value: true.

Changing the class loading option for module

  1. In the IBM WebSphere Application Server, expand: Applications > Application Types and select WebSphere enterprise applications in the left panel.
  2. In the right panel, select <application name> (magnoliaAuthor or magnoliaPublic) and under Modules > Manage Modules > <module name> (magnolia), select from Class loader order the option Classes loaded with local class loader first (parent last).
  • No labels