Hallo, ich möchte in meiner Anwendung EJB 3 verwenden. Die Anwendung läuft in einem Websphere Application Server 8.
Die EJBs sollen aus einer normalen Java-Klasse (liegt auf dem Server, wird von einem Servlet aufgerufen) aufgerufen werden. So wie ich es verstanden habe, kann ich dann nicht mit Dependency-Injection arbeiten. Stattdessen müsste der Aufruf der Bean über den InitialContext erfolgen. Allerdings bekomme ich immer eine NameNotFoundException.
Folgende Klassen habe ich angelegt:
Remote-Interface
EJB
Aufrufende Java-Klasse (kein Servlet)
In der aufrufenden Klasse habe ich schon etliche andere Konstellationen beim Aufruf von lookup() übergeben aber immer kommt es zum selben Fehler.
Hat jemand eine Idee, woran es liegen könnte?
Danke!
Die EJBs sollen aus einer normalen Java-Klasse (liegt auf dem Server, wird von einem Servlet aufgerufen) aufgerufen werden. So wie ich es verstanden habe, kann ich dann nicht mit Dependency-Injection arbeiten. Stattdessen müsste der Aufruf der Bean über den InitialContext erfolgen. Allerdings bekomme ich immer eine NameNotFoundException.
Folgende Klassen habe ich angelegt:
Remote-Interface
Java:
import javax.ejb.Remote;
@Remote
public interface EjbTestRemote {
public void doSth();
}
EJB
Java:
import javax.ejb.Stateless;
@Stateless
public class EjbTest implements EjbTestRemote {
@Override
public void doSth() {
System.out.println("Hello world!");
}
}
Aufrufende Java-Klasse (kein Servlet)
Java:
try {
InitialContext ctx = new InitialContext();
Object o = ctx.lookup("package.EjbTestRemote");
} catch (NamingException e) {
e.printStackTrace();
}
In der aufrufenden Klasse habe ich schon etliche andere Konstellationen beim Aufruf von lookup() übergeben aber immer kommt es zum selben Fehler.
Hat jemand eine Idee, woran es liegen könnte?
Danke!