FAQ zur Vorlesung

Die häufigsten Fragen, die uns im Zusammenhang mit der Vorlesung bzw. den Übungen gestellt werden, haben wir nachstehend für Euch thematisch sortiert aufgelistet. Klickt einfach auf die Titelleisten, um die jeweilige Rubrik aufzuklappen bzw. zu schließen. Ihr könnt auch alle auf einmal aufklappen sowie alle auf einmal wieder schließen.

Fragen rund um die Organisation der Vorlesung

Noch keine Fragen vorhanden

Fragen zur Klausur, zur Prüfung und zur DAV

Noch keine Fragen vorhanden

Fragen rund um den Tomcat (auch bzgl. Installation auf einem Windows-Rechner)

Wie kann ich von Rechnern, die nicht zu Eurem WiMa-Pool gehören, auf meinen Tomcat zugreifen?

Das hängt davon ab, ob sich Dein Rechner im Uni-Netz befindet (z.B. Wohnheim, WLAN auf dem Campus, KIZ-Pool) oder nicht. Die nachfolgende Erklärung gilt nur für den Fall, dass Dein Rechner Bestandteil des Uni-Netzes ist. (Wenn Du Dich von daheim aus via DSL oder ähnliches verbinden möchtest, dann findest Du eine Erklärung dafür bei der nächsten Frage.)

Je nach verwendetem Browser findet man die Einstellungen für Proxys an verschiedenen Stellen, aber jeder Browser bietet sie. Wenn Ihr die Einstell-Möglichkeiten gefunden habt, dann wählt als Proxy die thales (thales.mathematik.uni-ulm.de) und als Port die Port-Nummer 3128. Dann sollte es unmittelbar funktionieren.

Kann ich mich auch von ausserhalb des Uni-Netzes mit meinem Tomcat verbinden?

Ja, allerdings läuft es dann etwas anders als über die Proxy-Konfiguration. Stichwort hier ist "SSH-Tunnel". Was kompliziert klingt, ist eigentlich eine ganz einfache Sache: Ihr stellt auf Eurem Rechner ein, dass alle Verbindungen zu einer bestimmten URL (der, wo Euer Tomcat läuft) nicht über den normalen Weg läuft (der geht ja nicht), sondern über eine separate SSH-Verbindung (der SSH-Tunnel). Das funktioniert bei Windows im Putty recht bequem über die GUI, und wenn Ihr mit Linux oder Mac OS X arbeitet, geht es auch ganz einfach:

1.) Ihr legt Euch eine Datei namens "config" im Verzeichnis "~/.ssh" an und füllt sie mit dem folgenden Inhalt (bei den individuellen Angaben ohne spitze Klammern!):

Host MyTomcatAtTheUniversity
HostName theseus.mathematik.uni-ulm.de
User <hierKommtEuerLoginHin>
LocalForward 12345 theseus.mathematik.uni-ulm.de:<EurePortNummerHin>

 

2.) Gebt nun auf der Kommandozeile "ssh MyTomcatAtTheUniversity" ein (und dann - wenn Ihr danach gefragt werdet - natürlich das Passwort). Lasst dieses Fenster nun offen.

3.) Öffnet Euren Browser und gebt als URL ein: "http://localhost:12345"

Nun sollte es gehen!

Wie gesagt: Unter Windows-SSH-Clients funktioniert das im Prinzip genauso.

Wie setzt man das ulimit so, wie in der Installationsanleitung für den Tomcat gefordert?

Gebt (wenn der Tomcat nicht läuft) in einer Shell folgendes ein:

ulimit -v 500000

 

Startet dann aus dieser Shell heraus den Tomcat. Die Einstellungen vererben sich von der Shell aus auf alle aus ihr gestarteten Prozesse, also auch auf den Tomcat.

Alles weitere: "man ulimit" :-)

Wie bekomme ich einen Tomcat unter Windows ans Laufen?

Hier hat mich aus Euren Reihen (Danke, Bastian) ein Link erreicht, der genau das erklärt:
http://www.coreservlets.com/Apache-Tomcat-Tutorial/

 

Fragen rund um den eigenen MySQL-Server

Das Installationsskript für den eigenen MySQL-Server funktioniert bei mir nicht. Ich arbeite auf der Turing, das "setvars"-Skript ist aufgerufen, und trotzdem bricht die Installation mit Fehlermeldungen ab.

Dann überprüfe bitte mal, ob Du beim Aufruf des Skriptes im Parameter für das gew&uum;nschte Verzeichnis relative Pfadangaben (z.B. irgendwas mit einem Punkt vorne dran) verwendest. Wenn ja, dann ist das Dein Problem! Arbeite stets mit absoluten Pfadangaben (z.B. "~" für Dein Heimatverzeichnis), so wie in der Anleitung auch demonstriert. Dann sollte es gehen.

Wie kann ich denn aus meinem Java-Programm heraus eine Verbindung zu "meinem" MySQL-Server aufbauen?

Das funktioniert im Wesentlichen genau so, wie in den Übungen und Beispiellösungen anhand der Datenbank auf "orso" (nun natürlich "turing"!) gezeigt. Jedoch gibt es noch drei kleine Besonderheiten:

1.) Eure MySQL-Installation hat automatisch einen Port zugewiesen bekommen, über den der MySQL-Server erreichbar ist. Wie in der Installationsanleitung beschrieben, steht die Portnummer in der Datei "setenv". Hängt die Portnummer einfach mitsamt einem Doppelpunkt an den Rechnernamen: "jdbc:mysql://turing.mathematik.uni-ulm.de:12345".

2.) Diesmal erfolgt die Verbindung zum MySQL-Server ja mit Hilfe eines Passworts. Auch dieses muss im Verbindungsstring angegeben werden. Hängt dazu einfach ein "&password=XXX" an Euren Verbindungsstring dran, wobei XXXX natürlich für Euer Passwort steht.

3.) Der Benutzername für die MySQL-Datebank ist nicht Euer Login sondern "sep"

Lange Rede, kurzer Sinn: hier mal ein Beispiel für einen vollständigen Verbidungsstring:

jdbc:mysql://turing.mathematik.uni-ulm.de:12345/discounter?user=sep&password=DeinSQLPasswort


Ich habe die Discounter-Datenbank zwar erfolgreich eingelesen, aber wie arbeite ich denn nun mit ihr?

Wenn Ihr mit Hilfe von "startdb" die Datenbank gestartet habt und in der MySQL-Konsole seid, dann setzt einfach das Kommando "use discounter;" ab, und schon seid Ihr in der Discounter-Datenbank. Alternativ könnt Ihr aber auch die Datenbank "discounter" gleich als Parameter im Skript "workondb" nennen.

Das Skript "createtables", das in der Installationanleitung erwähnt ist, lässt sich nicht starten!

Bevor dieses Skript verwendet werden kann, muss es ausführbar gemacht werden. Dies geht mit dem Unix-Kommando "chmod +x createtables". Danach erfolgt der Start des Skripts via "./createtables" (sofern es sich im aktuellen Arbeitskatalog befindet.

Fragen zu Servlets

Ich möchte ein Objekt, das ich in einem Servlet erzeugt habe, gerne auch in einem anderen Servlet (weiter-)verwenden. Geht das?

Ja, das ist ganz einfach und sogar auch im Skript erklärt. Allerdings haben wir das in den Übungen nicht mehr besprochen.

Konkret funktioniert das über Sitzungen ("sessions"), und Ihr findet die Erklärung dazu inklusive Beispiel-Code in Abschnitt 4.11 des Skripts.