Handling of EJB business interface which is inherited in EAP
Issue
- Is it possible to use inheritance for EJB business interface?
- How to declare an interface as an EJB business interface?
- A working application in EAP 7.1 can not be deployed in EAP 7.2, it will fail with the following Exception
16:36:30,284 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "ejb31-singletonAsync-ejb.jar")]) - failure description: {
"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"ejb31-singletonAsync-ejb.jar\".INSTALL" => "WFLYSRV0153: Failed to process phase INSTALL of deployment \"ejb31-singletonAsync-ejb.jar\"
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEE0052: Failed to install component StartupSingletonAsyncPostBean
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEJB0406: No EJB found with interface of type 'org.jboss.wfink.ejb31.LocalTest' for binding org.jboss.wfink.ejb31.singleton.StartupSingletonAsyncPostBean/initBean"},
"WFLYCTL0412: Required services that are not installed:" => [
"jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.StartupSingletonAsyncPostBean",
"jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.TestReferenceBean",
"jboss.deployment.unit.\"ejb31-singletonAsync-ejb.jar\".WeldStartService",
"jboss.deployment.unit.\"ejb31-singletonAsync-ejb.jar\".beanmanager"
],
"WFLYCTL0180: Services with missing/unavailable dependencies" => [
"jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.StartupSingletonAsyncPostBean.ValidatorFactory is missing [jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.StartupSingletonAsyncPostBean]",
"jboss.deployment.unit.\"ejb31-singletonAsync-ejb.jar\".batch.artifact.factory is missing [jboss.deployment.unit.\"ejb31-singletonAsync-ejb.jar\".beanmanager]",
"jboss.deployment.unit.\"ejb31-singletonAsync-ejb.jar\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"ejb31-singletonAsync-ejb.jar\".WeldStartService, jboss.deployment.unit.\"ejb31-singletonAsync-ejb.jar\".beanmanager]",
"jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.StartupSingletonAsyncPostBean.Validator is missing [jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.StartupSingletonAsyncPostBean]",
"jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.StartupSingletonAsyncPostBean.InstanceName is missing [jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.StartupSingletonAsyncPostBean]",
"jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.TestReferenceBean.ValidatorFactory is missing [jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.TestReferenceBean]",
"jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.TestReferenceBean.Validator is missing [jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.TestReferenceBean]",
"jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.StartupSingletonAsyncPostBean.InAppClientContainer is missing [jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.StartupSingletonAsyncPostBean]",
"jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.TestReferenceBean.InstanceName is missing [jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.TestReferenceBean]",
"jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.TestReferenceBean.InAppClientContainer is missing [jboss.naming.context.java.comp.ejb31-singletonAsync-ejb.ejb31-singletonAsync-ejb.TestReferenceBean]"
]
}
- How inheritance of the Bean's implementation works with the EJB business interface?
- The Bean class is not exposed with the business interface implemented by the superclass only, this has been worked before. What is the reason?
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 7
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.