Workaround: Jazz Reporting Service cannot register with Jazz Team Server on WebSphere Application Server

Author: Kevin Cornell
Last Updated: October 2014
Build Basis: Jazz Reporting Service 5.0.0 and later


Problem Summary

The Jazz Reporting Service might not be able to register with a Jazz Team Server when the Jazz Reporting Service is deployed to WebSphere Application Server.

Problem

If the Jazz Reporting Service is deployed in a WebSphere Application Server profile and there are other applications deployed in the same profile, attempts to register the Jazz Reporting Service with the Jazz Team Server might result in an error due to a class loading issue. If you examine the rs.log and the SystemOut.log files associated with the WebSphere Application Server profile, look for the exception NoClassDefFoundError. The corresponding stack trace might look like this:

com.ibm.ws.webcontainer.servlet.ServletWrapper service Uncaught  service() exception thrown by servlet RootServicesServlet:  java.lang.NoClassDefFoundError: com.hp.hpl.jena.rdf.model.impl.ModelCom (initialization failure)     at java.lang.J9VMInternals.initialize()     at com.hp.hpl.jena.rdf.model.ModelFactory.createDefaultModel()     at com.ibm.team.jfs.app.resource.entity.RDFEntity.getModel()   

When multiple applications are deployed into the same WebSphere Application Server profile, the delegated class loader hierarchy of WebSphere Application Server can load multiple versions of the same library which might result in incompatible class references. If a class cannot be loaded for some reason, the NoClassDefFoundError occurs.

This issue was first noticed during a Rational Engineering Lifecycle Manager 5.0 upgrade, which includes the Jazz Reporting Service, but might also occur in newer versions of Rational Engineering Lifecycle Manager or the Jazz Reporting Service itself, depending upon how the Jazz Reporting Service is deployed. There are two Apache libraries contained in the WAR file for Jazz Reporting Service that cause this issue because WebSphere Application Server contains multiple versions of these libraries. The solution is to remove the libraries from the installed applications folder for the Jazz Reporting Service within the WebSphere Application Server profile.

Workaround

In the steps below, the following variables are used:

  • <WAS_Install> corresponds to the WebSphere Application Server installation folder where the profile name is AppSrv01. If your profile name is different, replace AppSrv01 in the steps below.
  • <hostName> is the default name assigned for your local host in the WebSphere Application Server profile.
  • <JRS_Name> is the WAR file name used by Jazz Reporting Service in the corresponding installation. In Rational Engineering Lifecycle Manager 5.0, the Jazz Reporting Service name was “SPARQL_Gateway” but in Rational Engineering Lifecycle Manager 5.0.1 it is “rs”. For standalone Jazz Reporting Service installs, the <JRS_Name> name is “rs”.
  1. Shut down WebSphere Application Server.
  2. On your system, go to the folder <WAS_Install>/profiles/AppSrv01/installedApps/<hostName>Node01Cell/.
  3. In this folder you should see a child folder for the Jazz Reporting Service WAR file, such as <JRS_Name>_war.ear.
  4. Go to the child folder <JRS_Name>_war.ear/<JRS_Name>.war/WEB-INF/lib.
  5. In the lib folder you should see two JAR files called xercesImpl-2.11.0.jar and xml-apis-1.4.01.jar.
  6. Rename them to xercesImpl-2.11.0.jar.deleted and xml-apis-1.4.01.jar.deleted.
  7. Restart WebSphere Application Server and try the Jazz Reporting Service registration again.

Copyright © 2014 IBM Corporation

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.
Feedback
Was this information helpful? Yes No 3 people rated this as helpful.