Powszechnie wiadomo, że Session EJB 3.0 może posiadać dwa interfejsy biznesowe: Local i Remote.
Dodatkowo interfejs może posiadać klika interfejsów Remote. Kiedy uda się nam już utworzyć takiego beana, problematycznym staje się dotarcie do takiego interfejsu. Nie jestem pewnien czy problem dotyczy każdego z serwerów aplikacyjnych, ja spotkałem się z nim pracując z GlassFish 2.1
Aby utowrzyć EJB który korzysta z kilku interfejsów biznesowych typu Remote należy:
Pierwszy interfejs Remote
package eu.swierczyna;
public interface CronJobRemote {
public void methodA();
}
Drugi interfejs Remote
package eu.swierczyna;
public interface CronJobRemoteDynamic {
public void methodDynamic();
}
Pseudo kod implementecji EJB
@Stateless
@Remote({CronJobRemote.class, CronJobRemoteDynamic.class})
public class CronJobBean implements CronJobLocal, CronJobRemote, CronJobRemoteDynamic {
...
}
W przypadku serwera GlassFish 2.1 wyszukanie takiego interfejsu nie jest zbyt naturalne. Podczas lokalizowania interfejs przy użyciu JNDI jego nazwę należy poprzedzić znakiem “#”.
Pseudokod wyszukujacy
Context context = new InitialContext(); Object obj = context.lookup("#eu.swierczyna.CronJobRemote");
Dokładniejszy opis można znaleść na stronie glassfish faq.
COMMENTS
No Comments