EJB: Eine Remote Bean soll eine Local Bean ansprechen und dem Client übergeben

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:
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!
 
Okay der Jndi-Lookup über den Context ist wohl nur für Remote-Aufrufe gedacht.

Um auf die LocalBean zugreifen zu können bediene ich mich einfach der Dependency Injection und alles ist gut :)
 

FArt

Top Contributor
Ja... und wenn du doch mal selber einen Lookup machen möchteste, dann erstelle einfach einen parameterlosen InitialContext... der JBoss kennt seine eigenen Parameter schon ... ;-)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Spring util:list in eine andere importieren Application Tier 15
G Eine Frage des Geschmacks? Application Tier 4
O javax.naming.NoInitialContextException - Remote Session Bean Application Tier 2
S findet lookup("KundenDAOIml/remote") nicht Application Tier 9
K EJB Session Bean Application Tier 2
B Spring context:component-scan: No such bean definition Application Tier 2
M EJB Stateless Bean ist immer null im REST WebService Application Tier 3
T ERROR: Bean name must not be empty! Application Tier 3
P Timer Bean Application Tier 11
B Message-Driven Bean reagiert nicht Application Tier 3
A Stateful Session Bean will nicht "stateful" sein Application Tier 18
S Statefull Session Bean für UserLogin Application Tier 4
O Anfängerproblem mit Session Bean Application Tier 3
N Kummunikation Application Client - Session Bean Application Tier 8
J Session-Bean aufräumen bei Timeout bei Seam/EJB Application Tier 6
F Time-out Zeit für Session-Bean Application Tier 4
F Property-Datei in Stateless-Bean laden Application Tier 8
M Entity Bean wird nicht in stateless Session Bean injeziert Application Tier 3
V Stateless-Bean soll Info aus Stateful-Bean holen Application Tier 3
byte [Spring] Referenced Bean not found Application Tier 2

Ähnliche Java Themen

Neue Themen


Oben