geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "YunFeng Ma (JIRA)" <j...@apache.org>
Subject [jira] Updated: (GERONIMO-4210) EJB Injection in JSF Managed Bean
Date Thu, 31 Jul 2008 10:08:31 GMT

     [ https://issues.apache.org/jira/browse/GERONIMO-4210?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

YunFeng Ma updated GERONIMO-4210:
---------------------------------

    Attachment: GERONIMO-4210.patch

Let's look what's going on with this problem:
For example, a web application has two managed been (or servlet, taget) like bellow:
{noformat}
public class ABean {

    @EJB(name = "mybean")
    private MyBean mybean;

}

public class BBean {

    @EJB(name = "mybean")
    private MyBean mybean;

}
{noformat}

The EJBAnnotationHelper processes the above two annotations and generates the following descriptor:
{noformat}
  <jav:ejb-local-ref>
    <jav:ejb-ref-name>mybean</jav:ejb-ref-name>
    <jav:local>test.MyBean</jav:local>
    <jav:injection-target>
      <jav:injection-target-class>test.ABean</jav:injection-target-class>
      <jav:injection-target-name>mybean</jav:injection-target-name>
    </jav:injection-target>
  </jav:ejb-local-ref>
{noformat}

According to the above descriptor, only mybean in ABean is injected, the mybean in BBean is
not injected.

The attached patch will generate the following descriptor:
{noformat}
  <jav:ejb-local-ref>
    <jav:ejb-ref-name>mybean</jav:ejb-ref-name>
    <jav:local>test.MyBean</jav:local>
    <jav:injection-target>
      <jav:injection-target-class>test.ABean</jav:injection-target-class>
      <jav:injection-target-name>mybean</jav:injection-target-name>
    </jav:injection-target>
    <jav:injection-target>
      <jav:injection-target-class>test.BBean</jav:injection-target-class>
      <jav:injection-target-name>mybean</jav:injection-target-name>
    </jav:injection-target>
  </jav:ejb-local-ref>
{noformat}

Then mybean in BBean is injected. 

Please review the patch and if it's OK, I'll provide a patch for v2.1. Thanks.

> EJB Injection in JSF Managed Bean
> ---------------------------------
>
>                 Key: GERONIMO-4210
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-4210
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>    Affects Versions: 2.1.1
>         Environment: Linux antares 2.6.25-2-686 #1 SMP Fri Jun 27 03:23:20 UTC 2008 i686
GNU/Linux
> Debian
> java version "1.6.0_06"
> Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
> Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)
>            Reporter: Matthias Berndt
>         Attachments: GERONIMO-4210.patch, ltg3.tar.gz
>
>
> I've got two managed beans in a JSF 1.2 webapp. Both beans are quite equal. I try to
inject a stateless session bean (EJB3) into the managed beans. 
> @EJB(name = "java:comp/env/ejb/CredentialData")
> private CredentialData credentialData;
> In the first managed bean the EJB is injected correctly in CredentialDataController.
The second bean with exactly the same injection code does not get the EJB inCredentialTableBean.
There is no error but at runtime credentialData is null.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message