Objekt geht bei request verloren

Status
Nicht offen für weitere Antworten.

DaKo

Bekanntes Mitglied
Morgen zusammen,

da mir langsam die Ideen ausgehen, bin ich für jeden Hinweis dankbar.

Es geht um eine WebApp mit JSF, Spring und Hibernate.

Beim Login wird in einer Bean (scope="session") ein User-Objekt abgelegt. Dieses User-Objekt hat u.a. eine Liste. Diese Liste "geht allerdings mit unter verloren". D.h. beim ersten Request ist die Liste vollständig vorhanden, beim zweiten ist sie auf einmal leer.

Es werden weder das User-Objekt, noch die Liste in diesem Objekt überschrieben.

Jemand eine Idee, wo die Liste liegen bleiben könnte?

Gruß
Daniel
 
S

SlaterB

Gast
mache die Liste im User-Objekt private und logge getter + setter mit System.out.println(),
um von allen Änderungen/ Zugriffen zu erfahren,
teste außerdem mit hashCode()/ anderer unique Id, ob du nicht unterschiedliche User-Objekte untersuchst
 

DaKo

Bekanntes Mitglied
SlaterB hat gesagt.:
mache die Liste im User-Objekt private und logge getter + setter mit System.out.println(),
um von allen Änderungen/ Zugriffen zu erfahren,

Schon passiert ;-)
Daher weiß ich ja, dass sie nicht überschrieben werden.

SlaterB hat gesagt.:
teste außerdem mit hashCode()/ anderer unique Id, ob du nicht unterschiedliche User-Objekte untersuchst

(leider) auch schon passiert.

Trotzdem danke, SlaterB.

Weitere Ideen?

Gruß
Daniel
 
M

maki

Gast
Könnte auch an Hibernate liegen, was ist denn mit deinen equals() und hashCode() Methoden?
 

DaKo

Bekanntes Mitglied
Ich wüsste nicht, warum. equals() und hashCode() sind vorhanden und funktionieren.
 

ms

Top Contributor
Liegt da ein Hibernate-Objekt in der Session?
Tritt eine Exception auf?
Zeig mal ein bissl Code.

ms
 

DaKo

Bekanntes Mitglied
applicationContext.xml

Code:
<bean id="containerBean" class="xxx.ContainerBean"
		lazy-init="true" scope="session">
</bean>

ContainerBean (gekürzt):
Code:
public class ContainerBean{

   private User loginUser;

   public User getLoginUser(){ 
      return loginUser;
   }

   public void setLoginUser(User loginUser) {
      this.loginUser = loginUser;
   }
}

User (gekürzt):

Code:
public final class User{

   private Collection<xxx> liste;

   public Collection<xxx> getListe(){ 
      return liste;
   }

   public void setListe(Collection<xxx> liste) {
       this.liste = liste;
   }
}

Wenn beim ersten request containerBean.getLoginUser().getListe() aufgerufen wird, hat diese z.B. eine Länge von 5.
Beim zweiten request hat die Liste eine Länge von 0.
 

HLX

Top Contributor
Aus dem Code kann man natürlich nichts schließen.

Falls du nicht debuggen kannst, setz mal Ausgaben (System.out) in setListe und getListe, und an verschiedenen Schlüsselstellen in der Anwendung. Dann kannst du eingrenzen, an welcher Stelle das passiert.

Vielleicht wird die Sitzung irgendwo ungültig gemacht.
 

DaKo

Bekanntes Mitglied
Erstmal danke für eure Unterstützung :)

Ursache:
Kollege vergisst Wertübergabe = by refernce

Code:
List<xxx> neueListe = containerBean.getLoginUser().getListe();

//jetzt passiert ganz viel mit dieser Liste und dann 
//<dramatischen Trommelwirbel einfügen>

neueListe.clear();

Dann ist natürlich klar, dass die Liste weg ist :(

Nochmal danke an alle.

Gruß
Daniel
 
S

SlaterB

Gast
tztz, das Listen-Objekt ist noch da, nur leer?
solche wichtigen Infos verschweigst du? hat aber auch keiner danach gefragt ;)

edit: bzw. (ich zumindest) überlesen:
> beim zweiten ist sie auf einmal leer.
im ersten Post
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B IMAP Anmeldung in EJB - Objekt speichern und ständige Anmeldung verhindern Allgemeines EE 18
OnDemand CDI Ein Objekt erstellen Allgemeines EE 10
J JNDI-lookup.. dasselbe Objekt oder Kopie? Allgemeines EE 2
A Servlet erkennt request Objekt nicht Allgemeines EE 8
A Unsauberer Code.. (Properties-Objekt in JSP anzeigen) Allgemeines EE 5
D Problem mit EJB: Bean soll Objekt eigener Klasse zurückgeben Allgemeines EE 2
A Aus einer JSP zugreifen auf ein Objekt einer anderen JSP Allgemeines EE 4
G Objekt von jsp an set Methode von Bean übergeben! Allgemeines EE 2
G Objekt an Servlet übergeben - oder Objekt global definieren? Allgemeines EE 4
T Zugriff auf persistentes Set in einem Objekt Allgemeines EE 2
O JSP dynamisch aus einem objekt heraus erstellen Allgemeines EE 7
N JPA: Cannot persist detached Objekt Allgemeines EE 4
P JFreechart objekt in JSP anzeigen Allgemeines EE 12
M System Objekt und Gültigkeit bei Webapplikation. Allgemeines EE 6
U jpg objekt mit jsp anzeigen Allgemeines EE 3
C [JSP] errorpage: Zugriff auf exception-Objekt Allgemeines EE 2
N Spring Wie geht Dependency Injection + Google Guice? Allgemeines EE 5
S JEE installation geht nicht? Allgemeines EE 6
D [Glassfish EJB] OneToMany geht nicht Allgemeines EE 7
S JSF und CSS: background:url() geht nicht Allgemeines EE 2
S m2eclips + strust2 == geht nicht Allgemeines EE 5
A jsf: Servlet aufrufen, wie geht das? web.xml Fehler? Allgemeines EE 13
E Warum geht das nicht (EL Frage)? Allgemeines EE 3
L Zwei Browserfenster mit unterschiedlicher session - geht das Allgemeines EE 3
T Problem, Image-Button geht nur nicht im Internet Explorer Allgemeines EE 6
A Servlet/JSP Chat -> geht das? Allgemeines EE 10
T Servlet Request.getAttribut returns null from JSP Select-Box Allgemeines EE 4
M URL Servlet Request getParameter Allgemeines EE 2
G Request zu richtiger App leiten Allgemeines EE 2
J Client Request vom Server aus. Allgemeines EE 2
E Performance-Problem beim ersten Request Allgemeines EE 4
K Read Request Body Allgemeines EE 4
G jeder request eigener Thread ? Allgemeines EE 4
R Ist es möglich die Request paramter auf "null" zu Allgemeines EE 3
G Http request bekommen parsen und response senden Allgemeines EE 1
G Ablauf bei Request Allgemeines EE 4
M "Auto Client-Request" oder Server-Push oder Ajax – Allgemeines EE 2
N Servlet-Request abbrechen? Allgemeines EE 3
R Formulardaten mit request.getAttribute(name) Allgemeines EE 4
H request in JSP Seite ? Allgemeines EE 4
F Wie auf request.params mittels ${} zugreifen? Allgemeines EE 7
C JSF: request nach ausführung killen? Allgemeines EE 7
J init-Methode eines Servlet ausführen ohne vorherigen request Allgemeines EE 2
B Java-Client für eBaySOAP-API liefert HTTP(400) Bad Request Allgemeines EE 2
TRunKX Wie kriege ich die Auswahl in meinen Server Request? Allgemeines EE 7
S request.getParameter() holt NULL Allgemeines EE 4
K Request Problem Allgemeines EE 3

Ähnliche Java Themen

Neue Themen


Oben