000034085 - When upgrading RSA Identity Governance and Lifecycle to 7.0.x (WildFly 8), additional steps in WildFly are needed if you have customizations

Document created by RSA Customer Support Employee on Mar 10, 2017Last modified by RSA Customer Support Employee on Apr 22, 2017
Version 2Show Document
  • View in full screen mode

Article Content

Article Number000034085
Applies ToRSA Product Set:  RSA Identity Governance and Lifecycle 
RSA Product/Service Type: Appliance
RSA Version/Condition: 7.0.0, 7.0.1

 
Issue

Environment


  • RSA hardware appliance
  • WildFly 8.
  • Upgrading from RSA Via Lifecycle and Governance 6.9.x to RSA Via Lifecycle and Governance7.0.x.
To customize RSA Identity Governance and Lifecycle with additional Java classes, follow the section entitled "Customize RSA Via L&G" on page 148 of the RSA Via Lifecycle and Governance 7.0 Installation Guide.  However, the following errors may be reported:
Failed to define class com.sun.xml.messaging.saaj.soap.SOAPDocumentImpl in Module "deployment.aveksa.ear:main" from Service Module Loader: java.lang.LinkageError: 
Failed to link com/sun/xml/messaging/saaj/soap/SOAPDocumentImpl (Module "deployment.aveksa.ear:main" from Service Module Loader) 

Caused by: java.lang.NoClassDefFoundError: com/sun/org/apache/xerces/internal/dom/DocumentImpl

 
CauseThe errors are caused by incorrectly including API classes in a deployment that are also provided by the container, causing the deployment to fail to deploy properly.
The procedure in the Customize RSA Via L&G section states "[g]o to /tmp/customizeACM/ and modify the extracted files," but does not discuss how this is actually achieved, as it is external to the RSA product.
ResolutionThe solution comes from the WildFly 8 documentation for Class Loading in Wildfly.  User Dependencies (i. e., custom classes) need to be added through jboss-deployment-structure.xml or through the Dependencies: manifest entry.
The following is reproduced from the WildFly 8 documentation:

Accessing JDK classes


Not all JDK classes are exposed to a deployment by default. If your deployment uses JDK classes that are not exposed you can get access to them using jboss-deployment-structure.xml with system dependencies:


Using jboss-deployment-structure.xml to access JDK classes


<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
    <deployment>
        <dependencies>
            <system export="true">
                <paths>
                    <path name="com/sun/corba/se/spi/legacy/connection"/>
                </paths>
            </system>
        </dependencies>
    </deployment>
</jboss-deployment-structure>

Attachments

    Outcomes