Hallo,
ich habe ein Enterprise JavaBean geschrieben. Darauf möchte ich nun von einer Java-SE-Anwendung aus zugreifen. Hierbei handelt es sich um eine einfache Swing-Anwendung. Damit diese kompiliert sind ja die Klassen des EJB erforderlich (bzw. das Interface).
Im Buildpath habe ich das EJB-Projekt hinzugefügt. Das funktioniert auch alles soweit, aber trotzdem wundere ich mich, wofür es in Eclipse ein "Application Client Project" gibt. Muss ich auch immer das EJB-Projekt referenzieren oder kann man irgendwie eine RMI-Codebase einstellen?
Eclipse 3.3.1.1 (nit entsprechenden Plugins)
Glassfish V2
ich habe ein Enterprise JavaBean geschrieben. Darauf möchte ich nun von einer Java-SE-Anwendung aus zugreifen. Hierbei handelt es sich um eine einfache Swing-Anwendung. Damit diese kompiliert sind ja die Klassen des EJB erforderlich (bzw. das Interface).
Code:
package test;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class TestApp {
public static void main(String[] args) {
Properties props = new Properties();
props.setProperty(Context.PROVIDER_URL, "iiop://127.0.0.1:3700");
props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty(Context.URL_PKG_PREFIXES, "com.sun.enterprise.naming");
props.setProperty(Context.STATE_FACTORIES, "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
InitialContext ctx;
try {
ctx = new InitialContext(props);
Calculator calculator = (Calculator) ctx.lookup("CalculatorBean");
System.out.println("EJB message is: " + calculator.add(6, 6));
} catch (NamingException e) {
e.printStackTrace();
}
}
}
Im Buildpath habe ich das EJB-Projekt hinzugefügt. Das funktioniert auch alles soweit, aber trotzdem wundere ich mich, wofür es in Eclipse ein "Application Client Project" gibt. Muss ich auch immer das EJB-Projekt referenzieren oder kann man irgendwie eine RMI-Codebase einstellen?
Eclipse 3.3.1.1 (nit entsprechenden Plugins)
Glassfish V2