[jboss-jira] [JBoss JIRA] Issue Comment Edited: (EJBTHREE-2186) RemoteBinding annotation not overridden by subclass

Jason Shepherd (JIRA) jira-events at lists.jboss.org
Wed Oct 27 00:42:54 EDT 2010


    [ https://jira.jboss.org/browse/EJBTHREE-2186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12558948#action_12558948 ] 

Jason Shepherd edited comment on EJBTHREE-2186 at 10/27/10 12:41 AM:
---------------------------------------------------------------------

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="Bean/EntityServices")
//@Pool(value="StrictMaxPool", maxSize=15)
public class DefaultEntityBean extends AbstractDefaultEntityBean implements EntityServices{

}

@Stateless
@Remote()
@RemoteBinding(jndiBinding="Bean/VesselServices")
//@Pool(value="StrictMaxPool", maxSize=15)
public class DefaultVesselEntityBean extends AbstractDefaultEntityBean implements VesselServices{

}

      was (Author: jshepher):
    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="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="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    |      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    |      Bean/VesselServices - EJB3.x Default Remote
> Business Interface
> jvm 1    |      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/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 "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: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list