# Session Bean mit Local-Interface nutzen



## Aristoteles83 (15. Jan 2008)

Hallo,

ich habe folgendes Problem mit EJB3: Ich habe eine SessionBean, die einen enfachen Service darstellen soll. Diese SessionBean implementiert ein Interface, das mit @Local annotiert ist. Nun habe ich noch eine Fassade, die auf den Service zu greift. Die Fassade implementiert ein Remote-Interface und ist somit von einer anderen JVM nutzbar. Leider findet die Fassade aber meinen Service nicht. Sobald ich das Interface des Service auf @Remote ändere findet sie ihn aber dann und das obwohl beide SessionBeans auf dem gleichen ApplicationServer (Glassfish V2) liegen. Weiß jemand was ich falsch mache?

Viele Grüße,
Aristoteles23


----------



## JimPanse (2. Feb 2008)

Hallo,

also deine Session Bean muss sowohl die Local als auch die Remote Schnittstelle implementieren.
Aber natürlich in seperaten Interfaces!! So sieht es EJB3 vor.

Dann einfach ein lookup ala


BeanRemoteInterface bean = lookup("/system/BeanName/Remote", bean);

und schon sollte es funktionieren!!!

PS: Die Metode Lookup ist jetzt vereinfacht, ich habe diese Methode ausgelagert damit ich sie nicht über all neu implementieren muss. Falls du Probleme hast einfach nochmal schreiben.

Gruß


----------



## Guest (2. Feb 2008)

```
@Local
public interface IService
{
   ...
}

@Stateless
public class Facade implements WasAuchImmer
{
   @EJB
   private IService service;

   ...
}

oder

InitialContext ctx = new InitialContext();
IService service = (IService) ctx.lookup("ServiceImpl");
```


----------



## Guest (2. Feb 2008)

Noch das da hinterher. Gehört zum guten Ton. 

```
ctx.close();
```


----------

