Java Planet

O Javie i jej otoczeniu

EJB i wiele interfejsów Remote

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.

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

COMMENTS

No Comments

There are no comments posted yet. Be the first one!

Leave a Replay