IBM Support

IT11540: IBM MQ 8: JAVA.LANG.CLASSNOTFOUNDEXCEPTION: IS ISSUED WHEN USING MQ OSGI JARS WITH A NON-IBM OSGI IMPLEMENTATION

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • An attempt to use the MQ V8 OSGi jars with a non-IBM OSGi
    implementation, i.e. JBoss Fuse and Active MQ (3rd party JMS),
    fails.
    
    The OSGi bundle:
    com.ibm.msg.client.osgi.jms.prereq_8.0.0.3.jar
    is exporting the javax.jms package with version 1.1.
    Bundle-ClassPath: jms.jar
    Export-Package: javax.jms;version="1.1"
    
    However, the jms.jar file included in this prereq bundle is
    actually version 2.0. The jar version here is correct - the v8
    JMS client is JMS 2 compliant, so requires the 2.0 javax.jms
    package.
    The version exported by the prereq bundle is incorrect.
    
    The exceptions similar to the following will be seen:
    
    org.osgi.service.blueprint.container.ComponentDefinitionExceptio
    n:
    Unable to instantiate components
     at org.apache.aries.blueprint.container.BlueprintContainerImpl.
    instantiateEagerComponents(BlueprintContainerImpl.java:680)[12:o
    rg.
    apache.aries.blueprint.core:1.0.1.redhat-611423]
     at
    org.apache.aries.blueprint.container.BlueprintContainerImpl.doRu
    n
    (BlueprintContainerImpl.java:374)[12:org.apache.aries.blueprint.
    core:
    1.0.1.redhat-611423]
     at
    org.apache.aries.blueprint.container.BlueprintContainerImpl.run
    (BlueprintContainerImpl.java:261)[12:org.apache.aries.blueprint.
    core:
    1.0.1.redhat-611423]
     at org.apache.aries.blueprint.container.BlueprintExtender.
    createContainer(BlueprintExtender.java:270)[12:org.apache.aries.
    blueprint.core:1.0.1.redhat-611423]
    ...
    Caused by: java.lang.ClassNotFoundException:
    javax.jms.JMSRuntimeException not found by
    org.apache.geronimo.specs.geronimo-jms_1.1_spec [127]
     at
    org.apache.felix.framework.BundleWiringImpl.findClassOrResourceB
    yDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framewo
    rk-4.0.3.redhat-610379.jar:]
     at
    org.apache.felix.framework.BundleWiringImpl.access$400(BundleWir
    ingImpl.java:75)[org.apache.felix.framework-4.0.3.redhat-610379.
    jar:]
     at
    org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.lo
    adClass(BundleWiringImpl.java:1955)
     at
    java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_76]
     at
    org.apache.felix.framework.BundleWiringImpl.getClassByDelegation
    (BundleWiringImpl.java:1374)[org.apache.felix.framework-4.0.3.re
    dhat-610379.jar:]
     at
    org.apache.felix.framework.BundleWiringImpl.searchImports(Bundle
    WiringImpl.java:1553)[org.apache.felix.framework-4.0.3.redhat-61
    0379.jar:]
     at
    org.apache.felix.framework.BundleWiringImpl.findClassOrResourceB
    yDelegation(BundleWiringImpl.java:1484)[org.apache.felix.framewo
    rk-4.0.3.redhat-610379.jar:]
     at
    org.apache.felix.framework.BundleWiringImpl.access$400(BundleWir
    ingImpl.java:75)[org.apache.felix.framework-4.0.3.redhat-610379.
    jar:]
     at
    org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.lo
    adClass(BundleWiringImpl.java:1955)
     at
    java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_76]
    
    Also, the following exception can be seen when the allclient
    jars
    are used:
    java.lang.Exception: Could not start bundle
    :com.test.individual/Wmq-test-connection-factory/1.0.0-SNA
    PSHOT in feature(s) wmq-test-connection-factory-1.0.0-SNAPSHOT:
    Uses constraint violation.
    Unable to resolve bundle revision
    wmq-test-connection-factory.1.0.0-SNAPSHOT.osgi [256.0] because
    it is exposed to package 'javax.jms' from bundle revisions
    org.apache.geronimo.specs.geronimo-jms_1.1_spec [127.0] and
    com.ibm.mq.osgi.allclientprereqs [254.0] via two dependency
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of the MQ version 8 OSGi bundles in a
    non-IBM OSGi environment that has a different JMS provider
    contained within it, or an OSGi environment where there are
    multiple versions of the javax.jms package available at
    different versions.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When the MQ version 8 OSGi bundles were used in an environment
    where there were multiple instances of the javax.jms package
    loaded at different versions, or where there were non-IBM JMS
    providers also loaded into the environment, exceptions were seen
    indicating that the javax.jms package could not be found or
    used. This was because the javax.jms package exported from the
    MQ OSGi prereq bundles did not specify the package version
    correctly.
    
    The actual exceptions seen were different depending on the
    environment, but could include:
    
    Caused by: java.lang.ClassNotFoundException:
    javax.jms.JMSRuntimeException not found
    
    java.lang.Exception: Could not start bundle
    Unable to resolve bundle revision
    

Problem conclusion

  • The MQ OSGi bundles that export the javax.jms package now
    specify the version of the javax.jms package, which is version
    2.0.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v8.0       8.0.0.6
    
    The latest available maintenance can be obtained from
    'WebSphere MQ Recommended Fixes'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037
    
    If the maintenance level is not yet available information on
    its planned availability can be found in 'WebSphere MQ
    Planned Maintenance Release Dates'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006309
    ---------------------------------------------------------------
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT11540

  • Reported component name

    WMQ BASE MULTIP

  • Reported component ID

    5724H7251

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2015-10-01

  • Closed date

    2016-03-28

  • Last modified date

    2016-03-28

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    WMQ BASE MULTIP

  • Fixed component ID

    5724H7251

Applicable component levels

  • R800 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0.0.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
28 March 2016