Fixes are available
8.5.0.1: WebSphere Application Server V8.5 Fix Pack 1
8.0.0.5: WebSphere Application Server V8.0 Fix Pack 5
8.5.0.2: WebSphere Application Server V8.5 Fix Pack 2
8.0.0.6: WebSphere Application Server V8.0 Fix Pack 6
8.0.0.7: WebSphere Application Server V8.0 Fix Pack 7
8.0.0.8: WebSphere Application Server V8.0 Fix Pack 8
8.0.0.9: WebSphere Application Server V8.0 Fix Pack 9
8.0.0.10: WebSphere Application Server V8.0 Fix Pack 10
8.0.0.11: WebSphere Application Server V8.0 Fix Pack 11
8.0.0.12: WebSphere Application Server V8.0 Fix Pack 12
8.0.0.13: WebSphere Application Server V8.0 Fix Pack 13
8.0.0.14: WebSphere Application Server V8.0 Fix Pack 14
8.0.0.15: WebSphere Application Server V8.0 Fix Pack 15
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
Document Information
Modified date:
29 October 2021