[jboss-jira] [JBoss JIRA] Created: (JBNAME-40) JNDI Lookup for EJB3 Component with EJB2 Interface delivers wrong Proxy (EJB3 instead of EJB2)

Volker Raum (JIRA) jira-events at lists.jboss.org
Mon Nov 2 02:29:05 EST 2009


JNDI Lookup for EJB3 Component with EJB2 Interface delivers wrong Proxy (EJB3 instead of EJB2)
----------------------------------------------------------------------------------------------

                 Key: JBNAME-40
                 URL: https://jira.jboss.org/jira/browse/JBNAME-40
             Project: JBoss Naming
          Issue Type: Bug
    Affects Versions: 5.1.0.GA
         Environment: JBoss 5.1.0 (out of the box). Windows 7 (64 Bit), Also under Windows XP (32 Bit) Java 1.6.0_16 (Sun)
            Reporter: Volker Raum


Two EJB components are packaged into two jars within an EAR. EJB3 is an EJB3.0 Stateless Session Bean. EJB2 is a EJB2.0 Stateless Session Bean. EJB2 needs access to EJB3 so EJB3 was equipped with EJB2.0 Home and Remote Interfaces.

1. The EJB3 is coded like that:
...
@Stateless(name="EJB3")
@RemoteHome(EJB3Home.class)
public class EJB3Bean implements EJB3
{
...

2. EJB3Home looks like this: (for compatibility with EJB2.0)
public interface EJB3Home extends EJBHome
{
public EJB3Remote create() throws CreateException, RemoteException;
}

3. EJB3 is the EJB3 Business Remote Interface (according to EJB3.0 Spec) and looks like this:
@Remote
public interface EJB3
{
public void doThings() ;

4. EJB3Remote is a Remote Interface according to the EJB2.0 Spec:

public interface EJB3Remote extends EJBObject
{
public void doThings() throws RemoteException ;
...

5. For the EJB2 there is a deployment descriptor defined. The section for the EJB2 Session Bean contains the following ejb-ref:
...
<ejb-ref>
<ejb-ref-name>EJB2Remote</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
EJB3Home
EJB3Remote
<ejb-link>EJB3</ejb-link>    <!-- results are identical with or without this line-->
</ejb-ref>
...

6. The EJB2 does a Lookup like
Object obj = jndi.lookup("EJB2Remote") ;

What i would expect is an object implementing EJB3Home. After narrowing it i could call create() with it and get a EJB3Remote Object.

But what i get instead is an object of type EJB3, the Business Interface. 

Looks like a bug. jaikiran from the community forums asked me to report this as bug.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list