Kommunikation zwischen Servlet und EJB

JanHH

Top Contributor
Hallo,

habe eine Webanwendung, wo ein simples Servlet auf die gleichen Objekte zugreifen muss wie ein andere Teil der Anwendung, der auf EJBs basiert (Seam 2 / EJB 3.0). Das muss in beide Richtungen funktioneren; sowohl Servlet als auch EJBs müssen lesend und schreibend auf die gleichen Objekte zugreifen. Ein Auslagern der entsprechenden Daten in eine Datenbank ist dabei nicht die optimale Lösung, da performance ziemlich wichtig ist.

Werd jetzt gleich mal ein Buch-Kapitel über JNDI lesen, wie macht man sowas ansonsten? Ist das überhaupt sinnvoll/machbar, und läuft später auch stabil, auch wenn die Anwendung eine relativ hohe Auslastung hat?

Gruß+Danke
Jan
 

tagedieb

Top Contributor
Willst du aus dem Servlet direkt auf die Daten zugreifen?

Du hast doch bereits einen Service (EJB) damit kannst du vom Servlet auf die Daten zugreifen. Direkter Zugriff ist ein Designfehler und sollte sich was am 'Service' aendern kannst du die Aenderung gleich zweimal (Servlet und EJB) machen.
Mit dem lokal Interface duerfte es auch keine performance Probleme geben.

Wenn du keine Datenbank verwendest wo speicherst du die Daten denn? Oder arbeitest du nur mit fluechtigen Daten?
Du kannst ueber den Service auch noch einen Caching-Aspekt legen um weiter die Performance zu erhoehen.
 

JanHH

Top Contributor
Danke, aber ich glaub Du hast die Frage nicht ganz verstanden. Dass das geht, weiss ich ja. Nur wie? ;-).

Die Anwendung hat sich mittlerweile zu einem Design entwickelt, wo im Application Server diverse Module rumschwirren, die miteinander kommunizieren sollen (ca. 3 oder 4 Stück), ohne dass die Daten dabei in einer Datenbank zwischengelagert werden (aus, wie gesagt, Performancegründen). Also ein Servlet, ein simples Objekt was vor sich hinwerkelt, eine seam/jsf-Webanwendung..

Natürlich wird auch eine Datenbank benutzt. Aber an den besagten Kommunikations-Stellen ist das zu langsam.

Hab mich jetzt aber ein bisschen in JNDI eingelesen und es scheint ja so zu sein, dass man alle relevanten Objekte da im JNDI-Kontext registrieren kann, so können die Objekte jeweils eine Referenz aufeinander bekommen, und ziemlich problemlos miteinander reden.

Oder???

Gruß
Jan
 

tagedieb

Top Contributor
Ja, da hab ich die Frage wirklich nicht verstanden.

Die Frage ist wohl: Wie greife ich aus einem Servlet auf ein EJB zu?

Nun, das sollte eigentlich kein Problem sein. Das findest du in jedem J2EE Tutorial.

Die EJBs registrieren sich automatisch in der JNDI Registry, darum musst du dich nicht kuemmern.
Und mit EJB 3 wird auch Clientmaessig der ServiceLookup alles im Hintergrund erledigt.
 

JanHH

Top Contributor
ja, so wird das wohl gehen.. zumindest weiss ich jetzt: Ja, es geht. Erstmal gings ja darum, ob das überhaupt geht (Software-Designentscheidung).

Gruß+Danke
Jan
 

JanHH

Top Contributor
Also meine bisherigen Erkenntnisse sind eher ernüchternd. Anscheinend wird, wenn man ein Objekt im JNDI-Kontext ablegt und woanders per lookup darauf zugreift, eine KOPIE des Objektes erstellt, und nicht DASSELBE Objekt zurückgegeben, welches man abgelegt hat. Kann das sein? Damit wäre JNDI da vollkommen nutzlos für meine Anwendung. Es geht ja darum, dass ein Servlet und eine EJB eine Referenz auf das selbe Objekt haben. Und wenn das tatsächlich so ist, wie kann man das Problem dann lösen?

Hab das folgendermassen getestet.. ein Objekt mit einer String-Property in jndi abgelegt, an anderer Stelle per lookup geholt, dann den String geändert, und geschaut, ob sich das an beiden Stellen, wo man eine Referenz auf das Objekt hat, synchron verhält.. ist nicht der Fall. Es handelt sich offenbar um zwei verschiedene Objekte.
 

JanHH

Top Contributor
Wenn man dann mal auf die Ausgangsfrage zurückgeht.. also Servlet und EJB (oder auch jsf-managed-bean, egal) müssen miteinander reden. Per JNDI geht das offenbar nicht. Wäre JMS dann die richtige Lösung dafür? Das dient ja eigentlich auch schon dem Namen nach dazu, dass verschiedene Teile einer Anwendung miteinander kommunizieren können. Würde das gehen? Eine Queue, in die sowohl Servlet als auch EJB Nachrichten schreiben, und irgendein Listener-Objekt bekommt die alle und kann sie dann synchronisiert abarbeiten? Ich brauche so langsam mal eine vernünftige Lösung für das Problem..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Kommunikation zwischen JSF Managed Beans Web Tier 11
M JSP und JavaScript Kommunikation in MVC Pattern Web Tier 1
G Kommunikation Servlet + Applikation Web Tier 4
J Managed bean und javascript kommunikation (JSF 2) Web Tier 2
D Unterschied zwischen JSP und JSF Web Tier 3
T JSF Variable zwischen 2 Beans austauschen? Web Tier 3
X Managed Bean Scope zwischen Request und Session gesucht Web Tier 6
J JSF JavaScript Probleme zwischen Tomahawk und Tiles!? Web Tier 2
S Daten zwischen 2 Servlets aus 2 Webapplikationen teilen? Web Tier 17
M Zwischen GET und POST unterscheiden Web Tier 9
M Dateien zwischen Web-Applications austauschen Web Tier 3
E Java Servlet doPost request, Mehrere Parameter mit demselben Namen aus Tabellenzeilen Web Tier 2
R servlet-mapping führt zu 404-Fehlern Web Tier 0
B Servlet mit TomCat9 Web Tier 0
A redirect mit servlet-mapping in web.xml Web Tier 4
J Wie Mouse Event in Servlet einbinden? Web Tier 1
D JSF Servlet Mapping Web Tier 3
J Session Servlet - JavaScript Web Tier 6
D Servlet 1 Servlet für alles - Wie Cookies per Ajax? Web Tier 1
S Problem mit Checkboxen im Servlet erkennen Web Tier 3
Todesbote Servlet MVC Design Pattern Web Tier 1
A Anfänger-Frage Servlet/Applet/JSP Web Tier 0
Shams Allgemeine Verständnisfrage zum Thema Servlet (in Vaadin) Web Tier 2
H File Output Servlet Web Tier 6
I vTiger Astersik Connector: NO JSP Support for , did not find org.apache.jasper.servlet.JspServlet Web Tier 0
OnDemand Servlet oder JSP Web Tier 12
H Servlet/JSP und OSGI Web Tier 2
L Servlet Datenbank Web Tier 0
D Java EE Servlet login Problem Web Tier 1
W Servlet SPEICHERN UNTER-Dialog für mehrere Dateien Web Tier 4
A Faces Context nicht mehr erreichbar nach Servlet Aufruf Web Tier 1
S Java Bean und Java Servlet Web Tier 2
D Servlet Servlet Weiterleitung static html Web Tier 5
G GWT 404 - Servlet nicht gefunden Web Tier 6
H Applet wirft AccessControlException bei File von Servlet Web Tier 3
H Servlet lässt sich nicht deployen Web Tier 7
C Kommunkation Servlets/Browseraufruf Servlet Web Tier 4
F.S.WhiTeY Servlet Servlet wird nicht angesprochen Web Tier 3
J Servlet Zugriff Servlet Web Tier 11
A JSON von JavaScript an Servlet Web Tier 9
K Servlet + JSP: JSP-Seite ein Array/ArrayList überliefern vom Controller-Servlet Web Tier 8
0 Servlet.Properties Web Tier 3
P Servlet Wo gibt es das javax.servlet.Servlet? Web Tier 2
H Servlet Servlet nimmt HTTP-GET mit Parameter entgegen Web Tier 2
5 Bild Pfad Servlet Web Tier 2
D Datenbankzugriff im Servlet Web Tier 5
H Servlet Apache Geronimo: Servlet nicht erreichbar Web Tier 2
S Ich brauche Buchempfehlung über JSP und Servlet Web Tier 2
A Parameterübergabe an Servlet und Aufruf von Servlets per Java Code Web Tier 7
S Auswahl eine Zeile von einer HTML Tabelle im Servlet Web Tier 4
K Servlet URL Mapping Web Tier 3
S ClassPath für Servlet Web Tier 3
reibi Servlet Logging - Standard Servlet Web Tier 5
K Portlet, Servlet doGet und doPost Web Tier 4
reibi Servlet Alleinlaufendes Servlet bauen Web Tier 6
P Servlet wird nicht gefunden - HTTP Error 503 Web Tier 7
lukas24680 Servlet pro Request Web Tier 2
C Pageing mit JSp&Servlet Web Tier 5
D JSP JSP integriert ein Servlet... Wie? Web Tier 7
I Servlet vor Browser URL-Direktzugriff schützen Web Tier 3
N Servlet ausführen Web Tier 26
B statische Html Seite als response erhalten (Servlet) Web Tier 3
A javax/servlet/jsp/jstl/core/Config Web Tier 1
F Servlet mapping ;-) Web Tier 3
H Servlet Mapping mit JSF Web Tier 8
B (JSP)+(Struts2)+(Servlet) Konfiguration web.xml Web Tier 2
W MVC mit Bean, JSP und Servlet Web Tier 6
T Button im Servlet - Werte übergeben Web Tier 2
J werte per post an servlet übergeben und auswerten Web Tier 3
ruutaiokwu HttpServletRequest-instanz in servlet und JSP unterschiedlich? Web Tier 5
T Bild durch anderes Bild ersetzen mit Servlet Web Tier 3
E Mein erstes Servlet Web Tier 8
S Servlet automatisch aufrufen Web Tier 2
C Image in Servlet Web Tier 2
S Servlet File Upload (API oder JSPSmart download) Web Tier 4
N API Nutzung SERVLET Web Tier 12
J Memory Leak in Servlet nach längere Laufzeit Web Tier 6
ruutaiokwu template engine gesucht ohne abhängigkeit zum servlet container Web Tier 2
G Servlet Ausgabe richtig benutzen Web Tier 4
W Servlet auf sich selbst verweisen lassen (Anfängerfrage) Web Tier 6
M Servlet Ausführungsfehler Web Tier 4
D Servlet alle 6h ausführen Web Tier 5
M Servlet & JSP Organisation Web Tier 2
J seltsames Auslastungsproblem bei Servlet Web Tier 7
ruutaiokwu JSF - läuft ausserhalb des servlet-containers? Web Tier 5
R Direkten Servlet-Aufruf verhindern (JSP) Web Tier 3
K Formularweiterleitung an Servlet Web Tier 5
N Servlet: Problem mit getParameterValues Web Tier 4
J Dateiupload- Servlet Web Tier 14
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
megachucky Welche Servlet-Version benötigt GWT 2.0? Web Tier 13
X Servlet Select box Web Tier 6
S Java Servlet Content Type Web Tier 3
E Servlet zum speichern einer Datei in einer Datenbank Web Tier 3
M Servlet neuladen Web Tier 2
H Wie wurde ein Servlet aufgerufen Web Tier 2
J Servlet soll XML ausgeben und Javascript soll dieses einlesen Web Tier 3
H servlet fehlermeldung Web Tier 3
W JSP/Servlet Web Applikation programmierung Web Tier 9
J Faces response aus einem anderen Servlet heraus rendern Web Tier 4

Ähnliche Java Themen

Neue Themen


Oben