APAR status
Closed as program error.
Error description
After deploying EJBs successfully on WebSphere v9.0.5.x, during the server startup the application fails to start and the following errors are logged in the SystemOut.log: CNTR5010E: The name of the ejbCreate business method of the com.ibm.xxx.yyy.xxxMessageListener interface for the XXXEAR#XXX.jar#XXX bean must not start with ejb. CNTR0075E: The user-provided class "com.ibm.eez.aab.MDBProxyXXX_7797d814" needed by the EnterpriseBean could not be found or loaded. WSVR0040E: addEjbModule failed for XXX.jar com.ibm.ejs.container.ContainerException: Bean class com.ibm.xxx.yyy.MDBProxyXXXXX_7797d814 could not be found or loaded; nested exception is: com.ibm.ejs.container.EJBConfigurationException: EJB business method ejbCreate on interface com.ibm.xxx.yyy.xxxMessageListener must not start with 'ejb'. at com.ibm.ws.metadata.ejb.EJBMDOrchestrator.loadGeneratedImplement ationClasses(EJBMDOrchestrator.java:4327) at com.ibm.ws.metadata.ejb.EJBMDOrchestrator.finishBMDInitWithRefer enceContext(EJBMDOrchestrator.java:636) at com.ibm.ws.ejbcontainer.runtime.AbstractEJBRuntime.finishBMDInit (AbstractEJBRuntime.java:1541) at com.ibm.ws.ejbcontainer.runtime.AbstractEJBRuntime.initializeBMD (AbstractEJBRuntime.java:1523) at com.ibm.ws.ejbcontainer.runtime.SharedEJBRuntimeImpl.initializeB MD(SharedEJBRuntimeImpl.java:381) at com.ibm.ws.ejbcontainer.runtime.AbstractEJBRuntime.startModule(A bstractEJBRuntime.java:542) at com.ibm.ws.ejbcontainer.runtime.SharedEJBRuntimeImpl.startModule (SharedEJBRuntimeImpl.java:347) at com.ibm.ws.runtime.component.EJBContainerImpl.start(EJBContainer Impl.java:3355) at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(Applicatio nMgrImpl.java:1249) at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeploye dObjectStart(DeployedApplicationImpl.java:1590) at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedMo duleImpl.java:707) at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(Deplo yedApplicationImpl.java:1161) at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication (ApplicationMgrImpl.java:801) at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication Dynamically(ApplicationMgrImpl.java:1451) at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(Applicatio nMgrImpl.java:2319) at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(Compos itionUnitMgrImpl.java:436) at com.ibm.ws.runtime.component.CompositionUnitImpl.start(Compositi onUnitImpl.java:123) at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(Compos itionUnitMgrImpl.java:379) at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$500(C ompositionUnitMgrImpl.java:127) at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$1.run(Compos itionUnitMgrImpl.java:654) at com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManager Impl.java:5536) at com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextM anagerImpl.java:5662) at com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityCon text.java:255) at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startComposi tionUnit(CompositionUnitMgrImpl.java:668) at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startComposi tionUnit(CompositionUnitMgrImpl.java:612) at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication (ApplicationMgrImpl.java:1341) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessor Impl.java:90) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod AccessorImpl.java:55) at java.lang.reflect.Method.invoke(Method.java:508) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:83) at sun.reflect.GeneratedMethodAccessor81.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod AccessorImpl.java:55) at java.lang.reflect.Method.invoke(Method.java:508) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:287) at javax.management.modelmbean.RequiredModelMBean$4.run(RequiredMod elMBean.java:1263) at java.security.AccessController.doPrivileged(AccessController.jav a:673) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersec tionPrivilege(ProtectionDomain.java:85) at javax.management.modelmbean.RequiredModelMBean.invokeMethod(Requ iredModelMBean.java:1257) at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredMo delMBean.java:1096) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Def aultMBeanServerInterceptor.java:831) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.jav a:813) at com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.ja va:1352) at com.ibm.ws.security.util.AccessController.doPrivileged(AccessCon troller.java:118) at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.j ava:1245) at com.ibm.ws.management.connector.AdminServiceDelegator.invoke(Adm inServiceDelegator.java:181) at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod AccessorImpl.java:55) at java.lang.reflect.Method.invoke(Method.java:508) at com.ibm.ws.management.connector.soap.SOAPConnector.invoke(SOAPCo nnector.java:503) at com.ibm.ws.management.connector.soap.SOAPConnector.service(SOAPC onnector.java:335) at com.ibm.ws.management.connector.soap.SOAPConnection.handleReques t(SOAPConnection.java:65) at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnecti on.java:733) at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:522) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1909) Caused by: com.ibm.ejs.container.EJBConfigurationException: EJB business method ejbCreate on interface com.ibm.xxx.yyy.xxxMessageListener must not start with 'ejb'. at com.ibm.ws.ejbcontainer.jitdeploy.EJBWrapper.generateClassBytes( EJBWrapper.java:365) at com.ibm.ws.ejbcontainer.jitdeploy.JITDeploy.generateMDBProxy(JIT Deploy.java:498) at com.ibm.ws.metadata.ejb.EJBMDOrchestrator.loadGeneratedImplement ationClasses(EJBMDOrchestrator.java:3912)
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All users of IBM WebSphere Application * * Server * * with message-driven bean applications * **************************************************************** * PROBLEM DESCRIPTION: Message-driven beans may fail to start * * with CNTR5010E if the message listener * * interface has no methods. * **************************************************************** * RECOMMENDATION: * **************************************************************** New in the Enterprise Beans specification version 3.2 is the ability to provide a message listener interface with no methods, and the enterprise beans container will then expose all public method of the message-driven bean class on the message endpoint. However, the enterprise beans container is incorrectly restricting method names that start with "ejb" or methods that are not public. Applications containing message-driven beans with methods that start with "ejb" or are not public and have a message listener interface with no methods will fail with the following series of exceptions: CNTR5010E: The name of the ejb[Create] business method of the xxx.yyy.[MessageListener] interface for the XXXEAR#XXX.jar#XXX bean must not start with ejb. CNTR0075E: The user-provided class "xxx.yyy.MDBProxyXXX_7797d814" needed by the EnterpriseBean could not be found or loaded. WSVR0040E: addEjbModule failed for XXX.jar com.ibm.ejs.container.ContainerException: Bean class xxx.yyy.MDBProxyXXXXX_7797d814 could not be found or loaded; nested exception is: com.ibm.ejs.container.EJBConfigurationException: EJB business method ejb[Create] on interface xxx.yyy.[MessageListener] must not start with 'ejb'. at com.ibm.ws.metadata.ejb.EJBMDOrchestrator.loadGeneratedImplement ationClasses(EJBMDOrchestrator.java:4327) This error is most common when migrating message-driven beans written to a prior version of the Enterprise Beans specification where message listener interfaces with no methods just resulted in no methods being exposed on the message endpoint.
Problem conclusion
The enterprise beans container has been updated to allow message-driven bean implementation methods starting with "ejb" for message listener interfaces with no methods. Non-public methods will be tolerated, but not exposed on the message endpoint. The problem has been corrected in open-liberty with the following issues: OLGH 13094 and OLGH 13170. The fix for this APAR is targeted for inclusion in fix packs 9.0.5.6 and 20.0.0.9. For more information, see 'Recommended Updates for WebSphere Application Server': https://www.ibm.com/support/pages/node/715553
Temporary fix
Comments
APAR Information
APAR number
PH27497
Reported component name
WEBS APP SERV N
Reported component ID
5724H8800
Reported release
900
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2020-07-16
Closed date
2020-09-18
Last modified date
2020-09-18
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
R900 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":"9.0","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
01 November 2021