# auf der Suche nach dem Fehler,Sessions  + Arrays



## Rio_Raizer (22. Mai 2007)

hallo,
ich möchte einen shop anlegen und meine in den warenkorb gelegten artikel in einer session speichern.

ich habe in der session so mein array angelegt:


```
int[][] ArtikelDaten = {{1,2}, {2,3,4}, {5, 6}};
		
		HttpSession session = rq.getSession(true);
		if(session.isNew())
		{
			session.setAttribute("UserStatus", "Gast");
			session.setAttribute("Artikel",ArtikelDaten);
		}
		if(session != null)
```

das sind bis jetzt nur beispieldaten.
jetzt möchte ich diese in der jsp wieder auslesen...sozusagen meinen warenkorb anzeigen lassen.

bekomme jedoch hier meinen fehler.
habe mir gedacht erst :


```
<%

int[][] ArtikelDatenonJSP = session.getAttribute("Artikel").clone();
```

ein 2tes array anzulegen und dann das aus der session zu kopieren. als fehlermeldung bekomme ich immer :

Type mismatch: cannot convert from Object to int[][]


Ist das generell falsch was ich vor habe bzw KANN gar nicht funktionieren ?? wenn doch , wie mache ich es richtig ? oder hat jemand tipps fuer mich ??


vielen dank !!


----------



## SlaterB (22. Mai 2007)

du bist ein Programmierer, fange an zu programmieren und bisschen Infos zu sammeln 

```
Object o = session.getAttribute("Artikel").clone(); 
System.out.println("o ist: "+o+", "+(o == null ? "" : o.getClass().getName()));
```
(oder schreibe diese Texte in die HTML-Ausgabe wenn du kein Log hast)

und das gleiche ohne clone() bzw clone() erstmal in einem normalen Java-Programm/ im Servlet testen,
wieso in der umständlichen JSP-Umgebung?


----------



## Guest (22. Mai 2007)

danke dir fuers erste.
habe es auf jeden fall schon viel probiert.

und jetzt auch im servlet versucht.
aber es funzt nicht.
er erkennt das clone am ende nicht


```
Object o = session.getAttribute("Artikel").clone();
```


wenn ich "normal" ein array kopiere geht es. aber mit dem sessionobjekt nicht.

muss ich das irgednwie anders machen ?

habe echt schon viel im net gesucht.aber was objekte in sessions angeht ist nicht all zu viel zu finden.



vielen dank !!


----------



## SlaterB (22. Mai 2007)

auf einem normalen Object kannst du gar nicht clone() aufrufen,
müsste eigentlich schon in der JSP als Fehlermeldung kommen..

caste das Object erst auf int[][], dann kannst du clone aufrufen,

falls wieder der Fehler 'cannot convert from Object to int[][] ' kommt,
siehe meine erste Antwort: finde erstmal heraus, was das überhaupt für ein Objekt ist


----------



## Guest (22. Mai 2007)

perfekt. vielen dank

es geht.

falls es jemanden interessiert:


```
int[][] ArtikelDaten = (int[][]) session.getAttribute("Artikel");
			
			int k=0;
			
			while (k<2)
			{
				for (int i=0;i<3;i++)
				{
					out.println(ArtikelDaten[i][k]);
					
				}
				k++;
				out.println("
");
			}
```


----------

