2012-07-25 31 views
6

Mam EJB EJB 3 kompatybilne powiedziećEJB generacja 3 Stub

@Remote 
interface Hai{ 
    String sayHai(); 
} 
Stateless(name = "xxx", mappedname="yyy") 
public class HaiImpl implements Hai{ 
    public String sayHai(){ 
     return "Hai"; 
    } 
} 

I muszę generować niedopałek w tym EJB. ale nie chcę używać narzędzia Websphere lub narzędzia maven. Czy istnieje sposób generowania kodu pośredniczącego przy użyciu jdk?

Podczas tworzenia klienta zdalnego

Hai hai = (Hai)ctx.lookup("yyy#com.zz.Hai"); 
System.out.println(hai.sayHai()); 

będzie pracować w WebLogic lub JBoss, ale w WebSphere, nawet jest EJB 3 trzeba napisać jak to

Object o = ctx.lookup("yyy"); 
Hai hai = (Hai)javax.rmi.PortableRemoteObject.narrow(o,Hai.class); 
System.out.println(hai.sayHai()); 

W tym przypadku, jeśli kodeks nie jest prezentowany na kliencie, który wyrzuci wyjątek, istnieje sposób na wygenerowanie kodu pośredniczącego za pomocą narzędzia WebSthere ejb stub generater. Ale nie chcę używać żadnych narzędzi specyficznych dla platformy.

+0

Czy istnieje potrzeba generowania kodów pośredniczących umotywowanych interoperacyjnością EJB 2.x lub dlaczego trzeba generować kody pośredniczące? –

+0

Zobacz pytanie dotyczące aktualizacji. –

Odpowiedz

4

Nie, należy użyć katalogu WAS_HOME/bin/createEJBStubs. Polecenie rmic zawarte w pakiecie Java SDK, który normalnie służy do generowania kodów pośredniczących, nie może być używane w "czystych" zdalnych interfejsach EJB 3, które nie rozszerzają java.rmi.Remote.

Pamiętaj, że jeśli używasz kontenera aplikacji (WAS_HOME/bin/launchClient) lub twój "klient" jest innym serwerem, nie musisz generować kodów pośredniczących: kontener wygeneruje je dla Ciebie. Musisz tylko użyć createEJBStubs, jeśli używasz niezarządzanego thinclient.

0

Mam utworzyć maven-plugin wrapper dla skryptu createEJBStub.

Dlaczego?

To pozwala nam budować projekty testowe, które działają w ramach konfiguracji CI w stosunku do naszej aplikacji po wdrożeniu.

Dokładniej wraz z Maven, to pozwoli nasz projekt test:

  1. Wykorzystać zarządzanie zależność Maven ciągnąć słoik API, które publikujemy na naszym wewnętrznym repozytorium nexus
  2. Tworzenie klas Tuleje jako część Cykl życia "generowanie źródeł"
  3. Wykonaj test przypadku na serwerze aplikacji z EJB, aby przeprowadzić test integracji.