IBM Support

PM70521: VALIDATIONEXCEPTION INCORRECTLY THROWN DURING DEPLOYMENT OF EJB MODULES WITH MESSAGEDRIVEN BEANS

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Deploying applications with EJB Modules that contain one
    or more MessageDriven Beans may fail when validating required
    MessageListener interfaces.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server deploying EJB JAR modules with       *
    *                  MessageDriven Beans.                        *
    ****************************************************************
    * PROBLEM DESCRIPTION: A ValidationException is thrown when a  *
    *                      message driven bean has more than one   *
    *                      message listener interface.             *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    An EJB JAR module fails to deploy when a message driven bean
    contained by that EJB JAR module that meets the requirements
    for message listener interfaces.
    The problem symptom is a validation exception thrown when the
    EJB JAR module is deployed.  The validation exception causes
    the deployment to fail.
    The problem occurs when the entire collection of the message
    driven bean class and its superclasses implements more than
    one interface other than "java.io.Serializable", other than
    "java.io.Externalizable", and other than any interface having
    a qualified name which begins with "javax.ejb".
    Whether the validation exception is correct or incorrect
    depends on the particular interfaces implemented by the
    message driven bean class and its superclasses.  The
    interfaces of the bean class and its superclasses must be
    examined to determine if the validation exception is correct.
    For example:
    com.ibm.wsspi.amm.validate.ValidationException: CWWAM1701E:
    The class com.ibm.bapiin.BAPIINbMDB contains the
    @MessageDriven annotation but is not a valid message-driven
    bean: no message listener interface can be determined.
    at
    com.ibm.ws.amm.merge.ejb.MessageDrivenMergeAction.getMessageList
    enerInterface(MessageDrivenMergeAction.java:282)
    at
    com.ibm.ws.amm.merge.ejb.MessageDrivenMergeAction.mergeEnterpris
    eBean(MessageDrivenMergeAction.java:180)
    at
    com.ibm.ws.amm.merge.ejb.EnterpriseBeanCommonMergeAction.mergeCl
    assTarget(EnterpriseBeanCommonMergeAction.java:73)
    at
    com.ibm.wsspi.amm.merge.AbstractMergeAction.mergeClassTargets(Ab
    stractMergeAction.java:377)
    

Problem conclusion

  • The correct requirement for message listener interfaces is
    that the message driven bean must either:
    
    1) Have a message listener interface specified by a
    "listener-type" element in the EJB JAR deployment descriptor.
    
    2) Have a message listener interface specified by a
    "messageListenerInterface" value through the "@MessageDriven"
    annotation of the message driven bean.  For the message
    listener interface to be valid the bean class must implement
    the message listener interface.
    
    3) Have a message listener interface as identified by the
    actual interfaces message driven bean class.
    
    Case (1) supersedes cases (2) and (3).  Case (2) supersedes
    case (3).
    
    For case (3), the identification of the message listener
    interface from the message driven bean class requires that the
    bean class or one of its superclasses implement exactly one
    interface other than "java.io.Serializable", other than
    "java.io.Externalizable", and other than any interface having
    a qualified name which begins with "javax.ejb".
    
    The identification of the message listener interface, when
    correctly implemented, separately tests the declared
    interfaces of the message driven bean class, and separately
    tests the declared interfaces of each of the superclasses of
    the message driven bean class.  A message listener interface
    is identified if a class implementing exactly one interface is
    located before a class implementing more than one such
    interface is located.  (Considering only interfaces other than
    "java.io.Serializable", other than "java.io.Externalizable",
    and other than any with a qualified name which starts with
    "javax.ejb".)
    
    Prior to this fix, the implementation incorrectly obtained all
    interfaces of the message driven bean class and its
    superclasses, and selected the message listener interface from
    that entire collection of interfaces.  This fix corrects the
    implementation to separately test the message driven bean
    class and to separately test each superclasses of the message
    driven bean class.
    
    The fix for this APAR is currently targeted for inclusion in
    fix pack 8.0.0.5 and 8.5.0.1. Please refer to the
    Recommended Updates page for delivery information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM70521

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-08-08

  • Closed date

    2012-08-13

  • Last modified date

    2012-08-13

  • 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

    WEBS APP SERV N

  • Fixed component ID

    5724H8800

Applicable component levels

  • R800 PSY

       UP

  • R850 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
29 October 2021