# In einem Bean zugriff auf ein SessionBean?



## Java Chris (6. Dez 2006)

Ich habe die frage schon gestellt, aber leider in die falsche kategorie,

also (leider) nocheinmal

Ich arbeite mit Myfaces an einer Webapplication und habe ein SessionBean (einfach ein Bean, welches als Session gespeichert wird) und will nun von einem anderen Bean auf dieses SessionBean zugreifen. Gibt es möglichkeiten darauf zuzugreifen? 

Bzw meine vison ist... ich habe ein action bean, welches eine session ausslöst und dabei etwas übergibt, und dann die session anzusteuern ist, über dieses eine Sessionbean


----------



## Kotelette (7. Dez 2006)

Handelt es sich bei dieser Session Bean um eine Java Enterprise Bean (die dann auf einem Applikationsserver wie JBoss läuft) ? Oder um eine "Managed Bean", also eine BackingBean für myFaces der Du einen Session-Scope verpasst hast?

Im ersten Fall:
(SavedAuftrag ist eine EJB Session Bean)

```
try{
            this.beanContext = new InitialContext();
            SAuftragHome savedA = (SAuftragHome)beanContext.lookup(SAuftragHome.JNDI_NAME);
            SAuftrag sauftrag = savedA.create();
}catch(Exception e){
            logger.info("Exception beim Context holen: " + e.getMessage());
}
```
Beim zweiten Fall bin ich mir nicht sicher.... hier ein Stück Code, das ganz gut aussieht (comments.gmane.org/gmane.comp.jakarta.myfaces.user/27525)

```
String managedBeanName = null;
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
// lookup bean in request scope
Enumeration requestAttributeNames = request.getAttributeNames();

while (requestAttributeNames.hasMoreElements()) {
                String requestAttribute = (String) requestAttributeNames.nextElement();
                Object object = request.getAttribute(requestAttribute);
                if ( Class.forName(myBean.getClass().getName()).isInstance(object) ) {
                    managedBeanName = requestAttribute;
                    break;
                }
}
```

Diese Angaben sind ohne Gewähr und nicht getestet  :wink:


----------



## DaKo (7. Dez 2006)

Um dir die Arbeit zu erleichtern, kannst du auch Spring verwenden


----------

