]
Jason Shepherd commented on EJBTHREE-2186:
------------------------------------------
Any alternative you can think of instead of the following workaround?
I suggested changing your inheritance hierarchy to extract the common logic from
DefaultEntityServicesBean (DESB) to a common abstract super class,
AbstractDefaultEntityServiceBean (ADESB). ADESB would not have a @RemoteBinding
annotation, and DESB and DefaultVesselServicesBean would both extend ADESB.
/**
* Common DefaultEntityBean logic
*/
public abstract class AbstractDefaultEntityBean {
public void myBusinessLogic(){
//common business logic
}
}
@Stateless
@Remote
@RemoteBinding(jndiBinding="SCMA/Bean/EntityServices")
//@Pool(value="StrictMaxPool", maxSize=15)
public class DefaultEntityBean extends AbstractDefaultEntityBean implements
EntityServices{
}
@Stateless
@Remote()
@RemoteBinding(jndiBinding="SCMA/Bean/VesselServices")
//@Pool(value="StrictMaxPool", maxSize=15)
public class DefaultVesselEntityBean extends AbstractDefaultEntityBean implements
VesselServices{
}
RemoteBinding annotation not overridden by subclass
---------------------------------------------------
Key: EJBTHREE-2186
URL:
https://jira.jboss.org/browse/EJBTHREE-2186
Project: EJB 3.0
Issue Type: Bug
Affects Versions: bom-eap5-1.0.1
Environment: EAP 5.1.0 with has dependencies on:
jboss/jboss-j2ee - 4.0.2
org.jboss.ejb3.bom - 1.0.1
Reporter: Jason Shepherd
Assignee: jaikiran pai
Two EJBs (defined below) are throwing an JNDI Binding exception when
deploying the application. Please see Binding exception below the EJB
definitions. And see the support ticket for more details.
EJB definitions:
DefaultEntityServicesBean
-------------------------
@Stateless
@Remote(EntityServices.class)
@RemoteBinding(jndiBinding="SCMA/Bean/EntityServices")
@Pool(value="StrictMaxPool", maxSize=15)
public class DefaultEntityServicesBean<T extends Entity> extends
DefaultServicesBean implements EntityServices<T>, Serializable
DefaultVesselServicesBean
-------------------------
@Stateless
@Remote(VesselServices.class)
@RemoteBinding(jndiBinding="SCMA/Bean/VesselServices")
@Pool(value="StrictMaxPool", maxSize=15)
public class DefaultVesselServicesBean extends
DefaultEntityServicesBean<Vessel> implements VesselServices,
Serializable
Server log output:
DefaultEntityServicesBean Registration:
jvm 1 | main 10:26:45,062 INFO [SessionSpecContainer line:296]
Starting jboss.j2ee:ear=sifews.ear,jar=mscore_ws.jar,
name=DefaultEntityServicesBean,service=EJB3
jvm 1 | main 10:26:45,062 INFO [EJBContainer line:296] STARTED EJB:
org.dsta.cma.mscorex.services.bean.DefaultEntity
ServicesBean ejbName: DefaultEntityServicesBean
jvm 1 | main 10:26:45,093 INFO [JndiSessionRegistrarBase line:296]
Binding the following Entries in Global JNDI:
jvm 1 |
jvm 1 | SCMA/Bean/EntityServices - EJB3.x Default Remote
Business Interface
jvm 1 |
sifews/DefaultEntityServicesBean/remote-org.dsta.cma.mscorex.services.EntityServices -
EJB3.x Remote Bus
DefaultVesselServicesBean Attempted Registration:
main 10:26:45,171 INFO [SessionSpecContainer line:296] Starting
jboss.j2ee:ear=sifews.ear,jar=mscore_ws.jar,
name=DefaultVesselServicesBean,service=EJB3
jvm 1 | main 10:26:45,171 INFO [EJBContainer line:296] STARTED EJB:
org.dsta.cma.mscorex.services.bean.DefaultVessel
ServicesBean ejbName: DefaultVesselServicesBean
jvm 1 | main 10:26:45,203 INFO [JndiSessionRegistrarBase line:296]
Binding the following Entries in Global JNDI:
jvm 1 |
jvm 1 | SCMA/Bean/VesselServices - EJB3.x Default Remote
Business Interface
jvm 1 | SCMA/Bean/EntityServices - EJB3.x Default Remote
Business Interface
jvm 1 |
sifews/DefaultVesselServicesBean/remote-org.dsta.cma.mscorex.services.VesselServices -
EJB3.x Remote Bus
iness Interface
jvm 1 |
sifews/DefaultVesselServicesBean/remote-org.dsta.cma.mscorex.services.EntityServices -
EJB3.x Remote Bus
iness Interface
jvm 1 |
jvm 1 | main 10:26:45,203 INFO [SessionSpecContainer line:296]
Stopping jboss.j2ee:ear=sifews.ear,jar=mscore_ws.jar,
name=DefaultVesselServicesBean,service=EJB3
jvm 1 | main 10:26:45,203 INFO [EJBContainer line:296] STOPPED EJB:
org.dsta.cma.mscorex.services.bean.DefaultVessel
ServicesBean ejbName: DefaultVesselServicesBean
jvm 1 | main 10:26:45,218 ERROR [AbstractKernelController line:419]
Error installing to Start: name=jboss.j2ee:ear=si
fews.ear,jar=mscore_ws.jar,name=DefaultVesselServicesBean,service=EJB3
state=Create
jvm 1 | java.lang.RuntimeException: Could not bind Reference Class
Name: Proxy for: org.dsta.cma.mscorex.services.Ves
selServices, org.dsta.cma.mscorex.services.EntityServices
jvm 1 | Type: ProxyFactoryKey
jvm 1 | Content:
ProxyFactory/sifews/DefaultVesselServicesBean/SCMA/Bean/EntityServices
jvm 1 | Type: EJB Container Name
jvm 1 | Content:
jboss.j2ee:ear=sifews.ear,jar=mscore_ws.jar,name=DefaultVesselServicesBean,service=EJB3
jvm 1 | Type: Proxy Factory is Local
jvm 1 | Content: false
jvm 1 | Type: Remoting Host URL
jvm 1 | Type: Remote Business Interface
jvm 1 | Content: org.dsta.cma.mscorex.services.VesselServices
jvm 1 | Type: Remote Business Interface
jvm 1 | Content: org.dsta.cma.mscorex.services.EntityServices
jvm 1 | into JNDI at "SCMA/Bean/EntityServices"
...
jvm 1 | Caused by: javax.naming.NameAlreadyBoundException:
EntityServices
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: