Hallo,
ich habe ein einfaches HelloWorld-EJB erstellt und erfolgreich deployed (JBoss 4.2.1). Den Client dazu habe ich auch erstellt und es funktioniert auch einwandfrei. Nur habe ich ein kleines Verständnis-Problem. Und zwar sieht der Code des Beispiel-Clients (aus "Enterprise JavaBeans 3 - Das EJB3-Praxisbuch für ein- und Umsteiger" von W. Eberling und J. Lessner) folgendermaßen aus:
Nur, so funktioniert es bei mir nicht. Der Complier beschwert sich, dass er den Typ HelloWorld nicht kennt. Ich habe in Eclipse 3.3 ein EJB Projekt angelegt, mit EJB-, Client- und EAR-Teilprojekten. Im EJB-Projekt wird in der Library EJB Libraries ein Ordner HelloWorldClient angelegt, jedoch ohne Inhalt. Wenn ich die Option Create EJB Client JAR ausführe, bekomme ich die Meldung, dass die Client-JAR schon existiert, diese kann ich aber nirgends im Workspace finden.
Die einzige Möglichkeit den Client zum Laufen zu bringen, die ich gefunden habe, ist das benötigte Remote-Interface (HelloWorld) im Client-Projekt zur Verfügung zu stellen (als selbstgebaute JAR oder als ein Class-File) und dieses Interface im Client importieren.
Was ich nicht verstehe - ist meine Konfiguration falsch, sodass das Client-Projekt die benötigte JAR nicht automatisch findet, oder ist der Beispiel-Code falsch und es funktioniert nicht ohne ein Import?
Gruß,
Romanticus
ich habe ein einfaches HelloWorld-EJB erstellt und erfolgreich deployed (JBoss 4.2.1). Den Client dazu habe ich auch erstellt und es funktioniert auch einwandfrei. Nur habe ich ein kleines Verständnis-Problem. Und zwar sieht der Code des Beispiel-Clients (aus "Enterprise JavaBeans 3 - Das EJB3-Praxisbuch für ein- und Umsteiger" von W. Eberling und J. Lessner) folgendermaßen aus:
Code:
import java.util.Properties;
import javax.naming.InitialContext;
public class Main {
public static void main(String[] args) throws Exception {
Properties props = new Properties();
props.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
props.put("java.naming.provider.url", "jnp://localhost:1099");
InitialContext context = new InitialContext(props);
HelloWorld hello = (HelloWorld)context.lookup("HelloWorldImpl/remote");
System.out.println(hello.hello("World"));
}
}
Nur, so funktioniert es bei mir nicht. Der Complier beschwert sich, dass er den Typ HelloWorld nicht kennt. Ich habe in Eclipse 3.3 ein EJB Projekt angelegt, mit EJB-, Client- und EAR-Teilprojekten. Im EJB-Projekt wird in der Library EJB Libraries ein Ordner HelloWorldClient angelegt, jedoch ohne Inhalt. Wenn ich die Option Create EJB Client JAR ausführe, bekomme ich die Meldung, dass die Client-JAR schon existiert, diese kann ich aber nirgends im Workspace finden.
Die einzige Möglichkeit den Client zum Laufen zu bringen, die ich gefunden habe, ist das benötigte Remote-Interface (HelloWorld) im Client-Projekt zur Verfügung zu stellen (als selbstgebaute JAR oder als ein Class-File) und dieses Interface im Client importieren.
Was ich nicht verstehe - ist meine Konfiguration falsch, sodass das Client-Projekt die benötigte JAR nicht automatisch findet, oder ist der Beispiel-Code falsch und es funktioniert nicht ohne ein Import?
Gruß,
Romanticus