Hallo!
Ich habe mich die letzten Tage mit EJB und JBoss befasst.
Mittlerweile pack ich es nach der JNDI-Norm meine Remote Beans anzusprechen (lookup & invoke). Aber ich hätte es gerne, dass ich auf dem Server eine Remote Bean habe, welche eine Local Bean anspricht. Nehmen wir mal an, dass die Local Bean über eine Methode den String "Hello World" zurückgibt. Die Remote Bean soll dann eine Methode bereitstellen, welche die lokale Bean anspricht und dort die Helloworld-Methode benutzt und das Ergebnis an den aufrufenden Client zurückliefert.
Der JNDI Name für den Remote-lookup wird so gebildet:
Wie baue ich den Lookup für eine lokale Bean auf?
Außerdem erstelle ich ja den SessionContext (per Hilfsmethode):
Dabei wird auf die jboss-ejb-client.properties zurückgegriffen, welche sich im Classpath befindet und die weiteren Verbindungsparameter bereitstellt.
Hier sehe ich ein weiteres Problem: Solange der Client die Remote Bean aufruft funktioniert alles tadellos. Sobald dann aber die Remote Bean die loakle Bean nutzen möchte, können die Verbindungsinformationen ja nicht mehr stimmen oder? Denn der JBoss läuft auf einer virtuellen Maschine und somit nicht auf dem localhost.
Kann mir da jemand weiterhelfen? Ich bin jetzt schon seit 3 Tagen auf diesem Problem gestrandet
Danke!
Ich habe mich die letzten Tage mit EJB und JBoss befasst.
Mittlerweile pack ich es nach der JNDI-Norm meine Remote Beans anzusprechen (lookup & invoke). Aber ich hätte es gerne, dass ich auf dem Server eine Remote Bean habe, welche eine Local Bean anspricht. Nehmen wir mal an, dass die Local Bean über eine Methode den String "Hello World" zurückgibt. Die Remote Bean soll dann eine Methode bereitstellen, welche die lokale Bean anspricht und dort die Helloworld-Methode benutzt und das Ergebnis an den aufrufenden Client zurückliefert.
Der JNDI Name für den Remote-lookup wird so gebildet:
Java:
final String fullJndiName = "ejb:" + appName + "/" + moduleName + "/"
+ distinctName + "/" + beanName + "!" + viewClassName;
Wie baue ich den Lookup für eine lokale Bean auf?
Außerdem erstelle ich ja den SessionContext (per Hilfsmethode):
Java:
// Hashtable für Verbindungsdetails aufsetzen
Hashtable p = new Hashtable();
// nur den notwendigen Parameter setzen, die anderen werden bezogen
p.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
// Context erstellen und zurückgeben
return new InitialContext(p);
Dabei wird auf die jboss-ejb-client.properties zurückgegriffen, welche sich im Classpath befindet und die weiteren Verbindungsparameter bereitstellt.
Hier sehe ich ein weiteres Problem: Solange der Client die Remote Bean aufruft funktioniert alles tadellos. Sobald dann aber die Remote Bean die loakle Bean nutzen möchte, können die Verbindungsinformationen ja nicht mehr stimmen oder? Denn der JBoss läuft auf einer virtuellen Maschine und somit nicht auf dem localhost.
Kann mir da jemand weiterhelfen? Ich bin jetzt schon seit 3 Tagen auf diesem Problem gestrandet
Danke!