PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche Hilfe: Tomcat



SeeksTheMoon
18.06.02, 20:33
Moin!

ich hab auf meinem System den Tomcat 4.04 (fertiges, komplettes binary) installiert.
Das Teil läuft auch soweit, ebenso wie Java 1.4 und J2EE 1.3.1.

Ich weiß jetzt aber nicht, wie ich ein Servlet ans Laufen kriege. Ich habe mir die Beispiele angesehen und die Doku gelesen, aber das macht mich langsam krank.

Ich hab den Standard-Kram aus $CATALINA_HOME/webapps/ROOT rausgekickt und dort meine Startseite reinkopiert. Die läuft auch (einfache html-Seite mit einem Formular; ruft Servlet mit POST auf), nur ich hab keine Ahnung, wie ich die action im Formtag angeben soll: IP:8080/und_nun?
Ist das eigentlich im Sinne des Erfinders, wenn ich das ROOT-Verzeichnis nehme?
Irgendwie hab ich gelesen, dass man für jedes Programm ein eigenes Verzeichnis erstellen soll.
Wie muss das WEB-INF Verzeichnis und die web.xml aussehen?
Ich hab mal testweise ein (s.o.)/WEB-INF/classes angelegt, aber das Servlet wird nicht ausgeführt, der Tomcat liefert "404 not found".

Auf dem System, wo ich das Servlet entwickelt habe (es läuft dort gut), wurde mir der action-Aufruf des Formulars und die package-Anweisung im Quellcode vorgegeben, aber das lief auch nicht auf einem Tomcat und ist auch wegen der völlig anderen Dateistruktur des Servers nicht portabel (dort war die Konfiguration auch nicht mein Problem).

Ich verzweifle langsam mit der Katze (ich steige aber nicht um; es MUSS Tomcat sein)....

SeeksTheMoon
19.06.02, 22:12
na gut, kennt wenigstens jemand ein Tutorial, das man halbwegs kapieren kann?

akula
16.04.03, 14:16
hi SeekTheMoon

hast du es mittlerweile in den Griff bekommen ??

Ich kaempfe naemlich mit den gleichen Schwierigkeiten wie du ...

SeeksTheMoon
16.04.03, 16:13
hab ich. Es ist nicht fein, aber es klappt und reicht zum Testen:
Nach tomcat/webapps/ROOT die html-Dateien und jsp Dateien
Nach tomcat/webapps/ROOT/web-inf folgende web.xml:



<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>

<servlet>
<servlet-name>MeinServlet</servlet-name>
<servlet-class>MeinServlet</servlet-class>
</servlet>

</web-app>


die class Dateien hab ich dann nach tomcat/webapps/examples/WEB-INF/classes kopiert. Dort laufen sie. Ich hab die class auch nach tomcat/webapps/ROOT/WEB-INF/classes kopiert, aber ich glaub die hat er nicht genommen (is schon was länger her, kan mich da nicht mehr so genau dran erinnern. *g*)

akula
22.04.03, 10:23
hi

hast du irgeneine gute Seite zu jsp ? wo alles von Grund auf erklaert wird ? auch die ganze geschichte mit den WAR files ?

Ich tappe voll im Dunkeln was jsp anbelangt

Tim Taylor
24.04.03, 12:01
Anleitung für den Fall, das Du nicht das ROOT-Verzeichnis nehmen willst:

1. Verzeichnisse anlegen, z.B.:
TOMCATDIR/webapps/meinewebapp
TOMCATDIR/webapps/meinewebapp/WEB-INF/
TOMCATDIR/webapps/meinewebapp/WEB-INF/classes

2. Im Verzeichnis webapps eine Datei namens meinewebapp.xml anlegen mit folgendem Inhalt:

<Context path="/meinewebapp" docBase="meinewebapp" debug="9"
reloadable="true" >
<Loader checkInterval="3"/>
<Logger className="org.apache.catalina.logger.SystemOutLogger" timestamp="true"/>
</Context>

ACHTUNG: Das klappt nur mit den neueren Tomcatversionen,weiss leider nicht ab welcher, ansonsten muss du das ganze in die TOMCATDIR/conf/server.xml einfügen.

3. Tomcat neustarten. Jetzt solltest Du zumindest schon das Verzeichnis unter http://localhost:8080/meinewebapp finden.

4. Servlet erstellen,compilieren und in das Verzeichnis TOMCATDIR/webapps/meinewebapp/WEB-INF/classes kopieren.

5. Im WEB-INF-Verzeichnis eine Datei mit dem Namen web.xml erstellen mit folgenden Inhalt:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>
<servlet>
<servlet-name>MeinServlet</servlet-name>
<servlet-class>MeinServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MeinServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>

Tim Taylor
24.04.03, 12:17
Anleitung für den Fall, das Du nicht das ROOT-Verzeichnis nehmen willst:

1. Verzeichnisse anlegen, z.B.:
TOMCATDIR/webapps/meinewebapp
TOMCATDIR/webapps/meinewebapp/WEB-INF/
TOMCATDIR/webapps/meinewebapp/WEB-INF/classes

2. Im Verzeichnis webapps eine Datei namens meinewebapp.xml anlegen mit folgendem Inhalt:

<Context path="/meinewebapp" docBase="meinewebapp" debug="9"
reloadable="true" >
<Loader checkInterval="3"/>
<Logger className="org.apache.catalina.logger.SystemOutLogger" timestamp="true"/>
</Context>

ACHTUNG: Das klappt nur mit den neueren Tomcatversionen,weiss leider nicht ab welcher, ansonsten muss du das ganze in die TOMCATDIR/conf/server.xml einfügen.

3. Tomcat neustarten. Jetzt solltest Du zumindest schon das Verzeichnis unter http://localhost:8080/meinewebapp finden.

4. Servlet erstellen,compilieren und in das Verzeichnis TOMCATDIR/webapps/meinewebapp/WEB-INF/classes kopieren.

5. Im WEB-INF-Verzeichnis eine Datei mit dem Namen web.xml erstellen mit folgenden Inhalt:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>
<servlet>
<servlet-name>MeinServlet</servlet-name>
<servlet-class>MeinServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MeinServlet</servlet-name>
<url-pattern>/MeinServlet</url-pattern>
</servlet-mapping>
</web-app>

6. Eventuell noch einmal neustarten, dann solltest Du das Servlet mit
http://localhost:8080/meinewebapp/MeinServlet starten können.

Wenn Du nur JSP verwendest reichen Schritt 1 und 2. Einfach die JSPs in das Verzeichnis kopieren.

Zum Thema WAR-Files

Meines Wissens sind WAR-Files ganz normale jar-Archive. Die kommen dann anstatt in WEB-INF/classes in WEB-INF/lib. Du brauchst die Dinge aber ja nicht zu benutzen, schließlich solltest Du mit der obigen Anleitung alles ans Laufen kriegen.

Zum Thema Links & Co:

Unter http://developer.java.sun.com/developer/Books/javaserverpages/ sind eine ganze Menge Bücher aufgeführt. Einige der Kapitel sind online verfübar.
Ansonsten kann ich von O'Reilly die Bücher a) Java Servlet Programming und b) JavaServerPages empfehlen.

Ich hoffe damit ist Dir erst einmal geholfen.

fs111
24.04.03, 15:00
Wer keine Lust hat, sich mit der Konfigurtion rumzuplagen, kann auch einfach netbeans nehmen, da ist der tomcat schon mit eingebaut, und starte auf Knopfdruck.

Grüße fs111

Tim Taylor
25.04.03, 08:08
Das starten ist ja beim Tomcat auch nicht das Problem, sondern ein vernünftiges Deployment der Anwendungen. Gibt es da bei Netbeans Tools für ?

Bauchi
25.04.03, 09:04
ähmmm okay..

wir setzen derzeit tomcat 4.1.18 ein in der firma ...

da wirfste einfach die webapplication unterhalb von webapps, und gehst dann auf die admin oberfläche und haust auf reload tomcat ..

die admin oberfläche gibts erst seit tomcat 4.1.X .. solltest du dir mal angucken .. ist echt okay... und über den neuen tomcat manager kannste auch war files deployen ohne das kotzen zu bekommen :-)

ich mach nachher mal 2 screenshots wenn ich in der firma bin :)

Tim Taylor
25.04.03, 09:08
Jupp, das wäre nett. Danke.

fs111
25.04.03, 09:47
Original geschrieben von Tim Taylor
Das starten ist ja beim Tomcat auch nicht das Problem, sondern ein vernünftiges Deployment der Anwendungen. Gibt es da bei Netbeans Tools für ?

Da Servlet Mapping macht netbeans von alleine, es fragt Dich nur nach einigen Parametern, wenn Du bspw. ein neues Servlet erstellts, kanns DU den Pfad, unter dem es erreichbar ist beeinflussen. Das ganze ich natürlich nur für Entwickler gedacht, wenn es dann "frei" laufen soll muss man schon noch einen "richtigen" tomcat installieren.

Grüße fs111

Tim Taylor
25.04.03, 10:49
Das ganze ich natürlich nur für Entwickler gedacht, wenn es dann "frei" laufen soll muss man schon noch einen "richtigen" tomcat installieren.

Das ist zum Glück dann nicht mehr mein Problem. ;-)

Danke für den Tip, ich werde mir Netbeans mal ansehen.

akula
29.04.03, 08:17
hi

kann ich die DocumentRoot auch auf irgendeinen Pfad im VerzeichnisBaum von LInux setzen?

@Tim Taylor

Was ist eigentlich der Unterschied zwischen deinen 2 Anleitungen ? der titel mit dem Root teil ist ja auch gleich?

ich habe es mal nach beiden Varianten der web.xml versucht.

wenn ich im URLMapping /* drinnen hab so bietet mir der Server sowohl jsp als auch das Servlet zum download an.
hingegen wenn ich im URLMapping /helloworld drinnen hab so will er nur das Servlet downloaden.

was ist da falsch ?

SeeksTheMoon
29.04.03, 21:11
will nicht jemand ein Tutorial zu diesem Thema machen?

Tim Taylor
29.04.03, 21:20
Das sind keine zwei Anleitungen, sondern ich habe versehentlich doppelt gepostet. Einmal vor dem Korrekturlesen und einmal danach. Sorry.

fs111
30.04.03, 10:53
Für eclipse gibt es eins hier: http://www.3plus4software.de/eclipse/tomcat.html
und für netbeans/Sun One Studio hier: http://forte.sun.com/ffj/documentation/techXref.html#tomcatwebserver

Grüße fs111