Servlet Business-Logik wird bei jedem Request neu erstellt

borobudur

Aktives Mitglied
Hallo, ich habe das problem, dass mir mein servlet immer alle instanzen neu erstellt.

Hintergrund ist, dass ich ein paar osgi-module entwickeln wollte aber dabei auf zu grosse probleme gestossen bin. Nun habe ich osgi zurückgestellt und stattdessen arbeiten meine module mit statischen factories. Ziel ist es, bald auf osgi umzustellen.

Ich hätte erwartet, dass dieser eintrag im web.xml:
[XML] <session-config>
<session-timeout>1440</session-timeout>
</session-config>[/XML]
mir eine session beibehält und nicht bei jedem request alles darunter neu instanziiert wird.

Mein servlet muss auf die business-logik zugreifen können, ohne diese jedes mal neu zu erstellen. Das geht doch mit einem tomcat-server, oder brauche ich dazu bereits einen applikationsserver?

thanks!
 
M

maki

Gast
Das geht auch komplett ohne AppServer, aber vielleicht solltest du dein konkretes Problem mal schildern, "Business-Logik wird bei jedem Request neu erstellt" ist weniger als nichtssagend.
 

borobudur

Aktives Mitglied
Beim debuggen, sehe ich, dass bei jedem request (ajax requests) die singelton instancen in den modul-factories wieder neu instanziiert wird.
 
M

maki

Gast
Dann sind das keine Singletons ;)

Mehr könnte man sagen, wenn du uns den relevanten Code zeigen würdest.
Irgendwie sind wir bis jetzt nicht wirklich weitergekommen ;)
 

borobudur

Aktives Mitglied
Ist das so schwer? Die ganze applikation wird bei jedem request instanziiert.
Wie ein singleton aussieht, weiss wohl jeder..
 
M

maki

Gast

fastjack

Top Contributor
Naja ich hatte das mit den Module Factories überlesen. Ich tippe mal darauf, das die Singletons darin ständig neu erzeugt werden (also gar keine sind), oder die komplette Factory bei jedem Request neu erzeugt wird (und die Singletons, die keine sind, wieder neu erzeugt). Aber kenn den Code nicht...
Ansonsten ein Singleton, das die Logik kapselt (eventuell synchronisieren nicht vergessen, je nachdem wie es aufgebaut ist), im Servlet benutzen.
 
M

maki

Gast
borobudur,

es will dir ja keiner etwas böses, aber den Fehler werden wir nicht finden wen du uns den relevanten Code nicht zeigst.

Ansonsten können wir hier nur Raten, ich rate mal dass du dein Guice Modul nicht bei jedem Request neu erzeugen solltest bzw. die @Singleton Annotation an deine Singletons schreiben solltest.
 

borobudur

Aktives Mitglied
borobudur,

es will dir ja keiner etwas böses, aber den Fehler werden wir nicht finden wen du uns den relevanten Code nicht zeigst.

Ansonsten können wir hier nur Raten, ich rate mal dass du dein Guice Modul nicht bei jedem Request neu erzeugen solltest bzw. die @Singleton Annotation an deine Singletons schreiben solltest.

Leute, ich würde euch ja gerne code zeigen - wenn ich nur wüsste, was ich euch zeigen soll. Also hier mal das singleton:

Java:
	public static ASModelService getASModelService() {
		if (modelService == null) {
			modelService = new ASModelFileBased();
			modelService.open();
		}
		return modelService;
	}
 
M

maki

Gast
Das Singleton sieht ok aus (für ein GoF Singleton), vermisse die synchronisation, die brauchst du auf jedenfall in einem Multithread Kontext, wie in Servlets haben, ist aber nicht der Grund dafür, dass bei jedem Request alles komplett neu erzeugt wird, oder du verzichtest auf lazy-init (empfehlenswert falls lazy-init nicht gefordert ist, die miesten bauen Lazyinit mit ein weil sie meinen das muss so sein, ohne Grund).

Wie sieht denn das Servlet aus?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G PrimeFace Generator(en) Business-Server und Customer Server Web Tier 5
K EJB Business Schnittstellen Web Tier 3
M JSP CMS Logik - MVC Web Tier 10
L Set<T> Attribut eines Objektes wird zu null in thymeleaf Web Tier 2
C JSP data wird nicht angezeigt Web Tier 6
jann Servlet Bei jedem Request wird eine neue Session erstellt. Web Tier 6
P JSF (Primefaces) SelectOneMenu Value auf Array wird nicht gesetzt Web Tier 0
W Tabelle wird nicht aktualisiert Web Tier 8
A JSF String wird nicht angezeigt Web Tier 2
S JSF CSS wird gefunden aber inhaltlich nicht angewendet Web Tier 2
R get-methode der Managed-Bean wird immer 3 mal ausgeführt Web Tier 4
R JSF ManagedProperty wird nicht erstellt Web Tier 1
G JSF Radio Button ValueChangeListener Wert wird nicht übernommen Web Tier 2
M fileUploadListener geht nicht wenn Element zur Laufzeit gerendert wird Web Tier 2
T JSF Primefaces beim öffnen eines p:dialog wird eine neue View ManagedBean erstellt Web Tier 2
nrg Java-Code in Taglib wird nicht richtig ausgeführt. Web Tier 7
F JSF CSS Verschachtelung wird nicht abgebildet Web Tier 2
F.S.WhiTeY Servlet Servlet wird nicht angesprochen Web Tier 3
D JSF a4j:support wird nicht gefunden Web Tier 2
H JSP, Eclipse, Tomcat - Java Klasse wird nicht gefunden Web Tier 8
T JSF wird nicht ausgeführt Web Tier 4
aze JSF CommandButton:Action wird nicht ausgeführt Web Tier 2
H JSF ActionListener wird ausgeführt, aber ändert den Wert nicht. Web Tier 7
L JSF Beispiel wird nicht ausgeführt Web Tier 2
T JSF Eigener Converter wird nur für Eingabekomponenten aufgerufen? Web Tier 3
M JSF Button - Methode wird nicht aufgerufen Web Tier 4
L einfache JSF-Seite wird nicht angezeigt Web Tier 8
B JSF HtmlCommandButton --- Action wird nicht aufgerufen Web Tier 2
N JSF [Maven] Seam 2.2, Richfaces 3.3 - a4j wird nicht umgewandelt Web Tier 6
P JSF AJAX render wird nicht ausgeführt Web Tier 4
X Seite wird mit AJAX neu geladen Web Tier 4
P Servlet wird nicht gefunden - HTTP Error 503 Web Tier 7
S JSF Primefaces Thema, Css wird geladen, nur die Bilder nicht, bzw Resource wird nicht aufgelöst Web Tier 5
J JSF JSF2.0 template wird nicht gerendert!? Web Tier 2
C GWT: RPC wird nicht gefunden Web Tier 3
I Beim zurück-Link wird immer ein Request ausgeführt Web Tier 5
E JSP ist es noch aktuell oder wird heute was anderes genutzt? Web Tier 3
D [JSF] Lifecycle Methode wird mehrfach aufgerufen Web Tier 4
J JSF Custom Component ValueExpression wird nur als String erkannt Web Tier 2
E init() wird mehrmals aufgerufen Web Tier 4
L [RichFaces] Applikation wird mit NullPointerException beendet Web Tier 5
E CSS wird nach RequestDispatcher.redirect nicht mehr geladen Web Tier 7
V JSF: dataTable Getter wird nie aufgerufen Web Tier 6
megachucky JSF - JSTL Library wird nicht gefunden Web Tier 4
Z Servlet Response HTTP-Status 200 wird nicht übertragen Web Tier 3
K [gelöst] JSF-Seite wird nicht angezeigt Web Tier 3
H JSF Seite wird plain angezeigt Web Tier 3
N URL bei WebApp wird immer laenger Web Tier 5
G JSP/JSF Inputtext rerender wenn Value geändert wird Web Tier 2
I servlet: init wird auch nach ServletException aufgerufen Web Tier 3

Ähnliche Java Themen

Neue Themen


Oben