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:

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

com.sun.jersey.api.client.ClientHandlerException: java.net.NoRouteToHostException: No route to host (Host unreachable)

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: java.net.NoRouteToHostException: No route to host (Host unreachable)

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).
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels