Sie sind nicht angemeldet.

KaiStapel

Trainee

  • »KaiStapel« ist der Autor dieses Themas

Beiträge: 59

Registrierungsdatum: 11.09.2007

Wohnort: FG SE, LUH

1

16.10.2008, 14:45

SOA Übung 1: Weiteres Beispiel im JSP Tutorial

Hallo,

ich habe ein zweites JSP-Beispiel im JSP-Tutorial zur Verfügung gestellt. Das illustriert kurz die Verwendung von Java Beans. Ich hoffe, dass euch das bei der Bearbeitung der Hausaufgabe hilft.

Gruß,
Kai
© by Kai

KaiStapel

Trainee

  • »KaiStapel« ist der Autor dieses Themas

Beiträge: 59

Registrierungsdatum: 11.09.2007

Wohnort: FG SE, LUH

2

16.10.2008, 17:46

Noch ein Hinweis zur Übung:

Falls ihr sowas im JSP macht,

Quellcode

1
<jsp:setProperty name="person" property="name" value="<%= request.getParameter("name") %>" />


und folgende Exception bekommt,

Quellcode

1
2
org.apache.jasper.JasperException: /hello.jsp(12,65) Attribute value  request.getParameter("name")  is quoted with " which must be escaped when used within the value
[...]


liegt das nicht daran, dass ihr was falsch gemacht habt, sondern an einem Bug in Apache Tomcat 6.0.18.

Abhilfe schafft ein Downgrade auf Tomct 6.0.16.

Gruß,
Kai
© by Kai

Finn MacCool

Junior Schreiberling

Beiträge: 195

Registrierungsdatum: 07.10.2006

3

18.10.2008, 15:32

öhmm, 3 dateien, darunter die .exe, sind beschädigt und/oder unvollständig
So berichte uns weiter, sagte Diarmuid Donn, um der Liebe Gottes willen.
Fürwahr, sagte Finn, ich will nicht.

KaiStapel

Trainee

  • »KaiStapel« ist der Autor dieses Themas

Beiträge: 59

Registrierungsdatum: 11.09.2007

Wohnort: FG SE, LUH

4

18.10.2008, 16:47

öhmm, 3 dateien, darunter die .exe, sind beschädigt und/oder unvollständig
Meinst du in der .zip von Tomcat 6.0.16? Das gleiche Problem hatte ich auch. Bei mir hat die .tar.gz funktioniert, obwohl da auch eine Fehlermeldung kam. Ansonsten kann ich noch auf den Windows-Installer verweisen. Den habe ich selbst aber noch nicht versucht.

Gruß,
Kai
© by Kai

Finn MacCool

Junior Schreiberling

Beiträge: 195

Registrierungsdatum: 07.10.2006

5

18.10.2008, 17:51

der lässt sich bei mir nichtmal starten - na, mal sehen, was die .tar bringt...


was anderes: wieso erhalte ich für


"< jsp:useBeanid="sweet"class="Sweet"scope="session">..."



die meldung "org.apache.jasper.JasperException: /shopIn.jsp(5,0) The value for the useBean class attribute Sweet is invalid."?
So berichte uns weiter, sagte Diarmuid Donn, um der Liebe Gottes willen.
Fürwahr, sagte Finn, ich will nicht.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Finn MacCool« (18.10.2008, 18:03)


DrChaotica

Senior Schreiberling

  • »DrChaotica« ist männlich

Beiträge: 714

Registrierungsdatum: 22.01.2005

Wohnort: SHG

Beruf: SW-Entwickler

6

19.10.2008, 20:49

Bei mir hat die Installation scheinbar funktioniert, die Beispiele auf eurer SOA-Seite lassen sich zumindest fehlerfrei kompilieren und ausführen. Allerdings bekam ich jetzt ein Problem, als ich eine Bean einer selbstdefinierten Klasse verwenden wollte:

Java-Quelltext

1
2
3
4
5
6
7
Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 13 in the jsp file: /summary.jsp
ShopArticle cannot be resolved to a type
...
13: <jsp:useBean id="newArticle" class="ShopArticle" scope="session" />

Die Artikel-Klasse sieht testweise momentan so aus:

Java-Quelltext

1
2
3
4
5
6
public class ShopArticle {
	String name;
	public ShopArticle() {	}
	public String getName() {return name;}
	public void setName(String name) {this.name = name;}
}

Es gibt also (wie für die Beans gefordert) nur den leeren Standardkonstruktor sowie get- und set-Methoden für alle Variablen, und die Javasource wird offenbar auch gefunden.
Trotzdem geht es nicht, warum? ?(

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »DrChaotica« (20.10.2008, 12:41)


Warui

Turner, Serveradmin & Workaholic

  • »Warui« ist männlich

Beiträge: 717

Registrierungsdatum: 25.04.2006

Wohnort: Südstadt

Beruf: (iter (B.Sc. Inf, 8)) \n (be-a-slave ("SRA", "Bachelor Thesis")) \n (be-a-programmer-slave ("Freelancer", "Programming"))

7

19.10.2008, 23:36

Bei mir geht es nur dann, wenn ich den kompletten Pfad angebe ... also in meinem Beispiel

Java-Quelltext

1
<jsp:useBean id="bookstore" class="de.warui.code.bookstore.model.BookStore" scope="session"></jsp:useBean>


Mein Shop ist "fertig" .... Juhu! :)
Sch*** JSP .... n paar Sachen hätten sie mal echt sinnvoller machen können .... oder ich bin nur so verwöhnt von Python und Ruby *seufz*

Wo steht das übrigens mit dem leeren Standardkonstruktor?
Ich habe durchaus Beans mit komplexeren verketteten Konstruktoren, aber die noch nicht ausprobiert ....
Erwachsenwerden? Ich mach ja viel Scheiß mit, aber nicht jeden!

derSmutje

Alter Hase

  • »derSmutje« ist männlich

Beiträge: 295

Registrierungsdatum: 07.12.2004

8

19.10.2008, 23:47


Wo steht das übrigens mit dem leeren Standardkonstruktor?
Ich habe durchaus Beans mit komplexeren verketteten Konstruktoren, aber die noch nicht ausprobiert ....

Hier auf Folie 5. Weiß aber auch nicht, ob das nur Mindestanforderungen sind und trotzdem weitere Konstruktoren erlaubt sind...
/join #inf

KaiStapel

Trainee

  • »KaiStapel« ist der Autor dieses Themas

Beiträge: 59

Registrierungsdatum: 11.09.2007

Wohnort: FG SE, LUH

9

20.10.2008, 11:39

Hier auf Folie 5. Weiß aber auch nicht, ob das nur Mindestanforderungen sind und trotzdem weitere Konstruktoren erlaubt sind...
Ja, das sind Mindestanforderungen. Darüber hinaus kann man in Klassen machen, was man will. Diese Anforderungen sind nötig, damit das Einbinden mit useBean funktioniert. Dabei wird nämlich der Standardkonstruktor aufgerufen.

Zum Attribut class in useBean: Ihr müßt dort den vollqualifizierten Klassennamen angeben, weil er sonst nicht weiß, wo er suchen muss.

Gruß,
Kai
© by Kai

DrChaotica

Senior Schreiberling

  • »DrChaotica« ist männlich

Beiträge: 714

Registrierungsdatum: 22.01.2005

Wohnort: SHG

Beruf: SW-Entwickler

10

20.10.2008, 12:39

Zum Attribut class in useBean: Ihr müßt dort den vollqualifizierten Klassennamen angeben, weil er sonst nicht weiß, wo er suchen muss.
Das ist der Pfad, den ich in Eclipse über "Rechtsklick <Dateiname> -> Properties -> Path" erfahre, nicht wahr?
Seltsamerweise sind meine Fehler jetzt alle weg, irgendwann war es immer so, dass es auf einmal ging, aber ich weiß immer noch nicht recht, warum eigentlich.

Ein paar Vermutungen:
- Eclipse hat irgendwann ungefragt ein "<%@page import="model.ShopArticle"%>" in mein jsp geknallt, dadurch kann man sich später offenbar die Vollqualifizierungen sparen.
- Meine Java-Bean-Klassen warfen Exceptions, bis ich in dem Package "model" eine Testklasse schrieb und ausführte, die alle Beanklassen einmal benutzt. Möglicherweise wurden die erst damit neu kompiliert, jedenfalls lief anschließend nach dem Test auch alles bei den JSPs.

Scheinbar bin ich jetzt auch fertig, der bekloppte Shop tut nun was ich will. Endlich.
In solchen Tagen wünsche ich mir wirklich, mich mehr mit HTML und den ganzen anderen Internetsprachen auszukennen, hat das ewig gedauert...das war eine ganz furchtbare Aufgabe ;)
Aber irgendwie auch lehrreich. Mehr davon.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »DrChaotica« (20.10.2008, 12:42)


KaiStapel

Trainee

  • »KaiStapel« ist der Autor dieses Themas

Beiträge: 59

Registrierungsdatum: 11.09.2007

Wohnort: FG SE, LUH

11

20.10.2008, 13:33

...das war eine ganz furchtbare Aufgabe... Mehr davon.
OK, wenn das euer Wunsch ist 8)
© by Kai

Beiträge: 60

Registrierungsdatum: 10.10.2005

12

20.10.2008, 19:50

der lässt sich bei mir nichtmal starten - na, mal sehen, was die .tar bringt...


was anderes: wieso erhalte ich für


"< jsp:useBeanid="sweet"class="Sweet"scope="session">..."



die meldung "org.apache.jasper.JasperException: /shopIn.jsp(5,0) The value for the useBean class attribute Sweet is invalid."?
Ein ähnliches Problem hatte ich gestern auch. (Wobei ich mal davon ausgehe dass du die Klasse "Sweet" vorher auch richtig importiert hast)
Das Problem war bei mir das die compilierten Klassen nicht in

Quellcode

1
"../WEB-INF/classes"
gelandet sind.
Die Lösung ist denkbar einfach, in der .classPath Datei nach dem Output-Verzeichnis mal gucken, der entsprechende Eintrag könnte z.B. so aussehen :

Quellcode

1
<classpathentry kind="output" path="WebContent/WEB-INF/classes"/>

Wichtig nur dannach natürlich mal ein Clean und Build drüber laufen lassen, wenn der automatische Build-Durchlauf deaktiviert wurde.

Dann funktionieren auch so Sache wie

Quellcode

1
"<%@page import="model.ShopArticle"%>" 


Hoffe hilft irgendwem weiter. ;)

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »ShadowScout« (20.10.2008, 19:57)


Warui

Turner, Serveradmin & Workaholic

  • »Warui« ist männlich

Beiträge: 717

Registrierungsdatum: 25.04.2006

Wohnort: Südstadt

Beruf: (iter (B.Sc. Inf, 8)) \n (be-a-slave ("SRA", "Bachelor Thesis")) \n (be-a-programmer-slave ("Freelancer", "Programming"))

13

20.10.2008, 21:13

Ah, der ist schick, den hab ich nicht hinbekommen .... bei mir sind die Sachen in /src gelandet ....
Erwachsenwerden? Ich mach ja viel Scheiß mit, aber nicht jeden!

KaiStapel

Trainee

  • »KaiStapel« ist der Autor dieses Themas

Beiträge: 59

Registrierungsdatum: 11.09.2007

Wohnort: FG SE, LUH

14

24.10.2008, 11:00


Zum Attribut class in useBean: Ihr müßt dort den vollqualifizierten Klassennamen angeben, weil er sonst nicht weiß, wo er suchen muss.
...

Ein paar Vermutungen:
- Eclipse hat irgendwann ungefragt ein "<%@page import="model.ShopArticle"%>" in mein jsp geknallt, dadurch kann man sich später offenbar die Vollqualifizierungen sparen.
- Meine Java-Bean-Klassen warfen Exceptions, bis ich in dem Package "model" eine Testklasse schrieb und ausführte, die alle Beanklassen einmal benutzt. Möglicherweise wurden die erst damit neu kompiliert, jedenfalls lief anschließend nach dem Test auch alles bei den JSPs.
...
Wenn ihr trotz vollqualifizierten Klassennamen oder <%@ page import="..." %> noch Exceptions bei der Nutzung einer bean bekommt liegt das evtl. am fehlenden Standardkonstruktor (Parameterloser Konstruktor) in der bean-Klasse.

Gruß,
Kai
© by Kai