Welche der zahlreichen web.xml konfigurieren?

tsitra

Bekanntes Mitglied
Hallo allerseits,

im Lehrbuch zu JSP und Servlets steht, dass der Web Deployment Descriptior konfiguriert werden
muss, damit ein bestimmtes Servlet an einen url gebunden wird.

Das bedeutet, dass in die web.xml immer zwei Einträge gemacht werden müssen, heisst es dort weiter.

Aber....P R O B L E M : Es gibt s i e b e n Dateien Namens "web.xml" !

Eine in
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\conf
(*Ich vermute, dass letzterer am ehesten der richtige ist.*)
uns sechs in
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\webapps\host-manager\WEB-INF
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\webapps\manager\WEB-INF
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\webapps\examples\WEB-INF
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\webapps\ROOT\WEB-INF
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\webapps\docs\appdev\ sample\ web\WEB-INF
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\webapps\docs\WEB-INF

und noch weitere, nämlich
hier eine

C:\Benutzer\tsitra\.netbeans\7.1.2\apache-tomcat-7.0.22.0_base\conf\web.xml

und bei
C:\Benutzer\tsitra\DokumenteNetBeansProjects\...
sind auch noch ein paar.


Ich halte es für schlecht, dass man sich mit einem stumpfsinnigen "Versteckspiel" aufhalten
muss, weil es nicht exakt genug (schlampig!?) dokumentiert ist.

Ich denke, dass es mit dem Konfigurieren schwieriger wird, wenn eine IDE genutzt wird,
weil eben dann noch mehr web.xml Dateien auftauchen.

Also, welche soll ich nehmen?

Gruß
tsitra
 
A

Andgalf

Gast
Du musst in der web.xml konfigurieren, die zu der entsprechenden Web-Anwendung gehört.

Im Normalfall bedeuted das, dass Du Änderungen genau in der web.xml vornimmst, die Du mit deiner Web-Anwendung ausliefert. Also genau die, die später in deinem war/ear Archiv liegt.
 

homer65

Top Contributor
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\conf
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\webapps\host-manager\WEB-INF
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\webapps\manager\WEB-INF
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\webapps\examples\WEB-INF
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\webapps\ROOT\WEB-INF
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\webapps\docs\appdev\ sample\ web\WEB-INF
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\webapps\docs\WEB-INF
Da lass mal schön die Finger von. Das sind interne Anwendungen. Die sind nicht von dir.
C:\Benutzer\tsitra\.netbeans\7.1.2\apache-tomcat-7.0.22.0_base\conf\web.xml
C:\Benutzer\tsitra\DokumenteNetBeansProjects\...
sind auch noch ein paar.
Das könnten deine sein. Grundsätzlich gibt es für jede Anwendung eine eigene web.xml.
Aber wer ausser dir sollte wissen, welche web.xml zu welcher Anwendung gehört?
 

tsitra

Bekanntes Mitglied
... Grundsätzlich gibt es für jede Anwendung eine eigene web.xml.
..

Hallo.

Das kann ich nicht nachvollziehen.

Eine Anwendung, heisst für mich ein einzelnes abgschlossenes web-project.

Weder in Installationsverzeichnis
C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\

noch im

C:\Benutzer\tsitra\Dokumente\NetBeansProjects\

finde ich pro web-Anwendung eine einzelne web.xml.

Selstamerweise sind dort nur in drei von 11 web-Anwendungen
in
C:\Benutzer\tsitra\Dokumente\NetBeansProjects\<Name der Web-Appl.>\web\WEB-INF

und in den anderen acht keine web.xml im gesamten Ordner
C:\Benutzer\tsitra\Dokumente\NetBeansProjects\<Name der Web-Appl.>
zu finden.

Gruß
tsitra
 
M

maki

Gast
Das kann ich nicht nachvollziehen.
Doku lesen hilft, in diesem Falle die Servlet Spezifikation.
Das steht ganz klar dass es pro WebApp eine web.xml gibt.

Wie das in deiner IDE aussieht ist ja was ganz anderes und muss gar nichts mit der fertigen Struktur einer WebApp zu tun haben.
 

tsitra

Bekanntes Mitglied
Doku lesen hilft, in diesem Falle die Servlet Spezifikation.
Das steht ganz klar dass es pro WebApp eine web.xml gibt.
Ja, das kann etwas helfen.
Jedoch sind die oft zu mehrdeutig,
und in Englisch erst recht, denn Englisch ist nicht meine Muttersprache.
(Mein Englisch ist bestimmt nicht schlecht und wurde kürzlich aufgefrischt, als ich ein
englischsprachiges 800 seitiges Buch durchgearbeitet habe.)

Wie das in deiner IDE aussieht ist ja was ganz anderes und muss gar nichts mit der fertigen Struktur einer WebApp zu tun haben.

Warum ist das was ganz anderes?

Warum muss das gar nichts mit der fertigen Struktur einer WebApp zu tun haben, wenn ich über diese IDE doch genau diese oder jene lauffähige WebApp erstelle?

Wie sieht denn die "fertige Struktur einer WebApp" aus?
Nach welchen Formregeln ist sie aufgebaut?
Wo genau wird sie gespeichert?
Gibt es überhaupt verbindliche und genormte Formregeln?

Im Grunde ist das doch nicht so kompliziert, wenn da ein paar Komponenten zusammenwirken
(sollen)

Es muss doch nur eine KLAR VEREINBARTE ORDUNG geben,
die dann ohne Mehrdeutigkeiten und entsprechend leicht verständlich
dargestellt wird.

Ich habe mal angenommen, (denn irgendwas muss ich annehmen), dass in
C:\Benutzer\tsitra\Dokumente\NetBeansProjects\
die Quelldateien der web-Anwendungen gespeichert sind, WEIL da pro neue in der IDE erstellte
web-app eine neues gleichnamiges Verzeichnis entstand.
Nach dem Kompileren kam darin dann noch ein Verzeichnis namens "build" hinzu

Mein Java EE 5 Lehrbuch kann doch nicht so veraltet sein!?
Die dort beschriebenen Verzeichnisstrukturen für die Arbeitsverzeichnisse von Webanwendungen
finde ich nur noch teilweise wieder.

Ich weiß warum ich seit Lebens mit installieren, konfigurieren und administrieren
"auf Kriegsfuß stehe", weil es mir meistens wie nervtötendes stumpsinniges Verstecken-Spiel
vorkommt.
Und die, die das dann in sogenannter Doku erklären (wollen), sind meistens mit den
Tücken der natürlichen Sprache so wenig vertraut, dass ihnen garnicht auffällt, wie ungenau
und mehrdeutig, also missverständlich, ihre Ausführungen sind.

Gruß
tsitra
 
G

gman

Gast
Hi,

wie du schon richtig erkannt hast legt Netbeans für jedes Projekt ein neuen Ordner an.
Darin werden alle Dateien gespeichert die zu dem Projekt gehören. Bei einer Webanwendung
auch die web.xml. Bei Netbeans werden die Verzeichnisse mitunter etwas anders angezeigt
als die Ordnerstruktur wirklich ist (zu sehen z.B. hier).

Allgemein kann man sagen das die web.xml eines Projektes im Ordner WEB-INF/ liegen muss.
Bei Netbeans könnte das der Ordner "Configuration Files" sein. Schau mal ob Netbeans nicht
einen Wizard hat für das Anlegen einer neuen web.xml wenn das nicht schon beim Projekt
erzeugen geschehen ist.
 

Templarthelast

Bekanntes Mitglied
So sieht eine Ordnerstruktur eine Webapp normalerweise aus.


Code:
|___META-INF // beinhaltet MANIFEST.mf
|___WEB-INF// beinhaltet configs(auch web.xml) und seiten, die nicht von außen aufgerufen werden sollen
    |___classes // compilte Klassen
    |___lib // zusätzliche jars.
 
M

maki

Gast
Ja, das kann etwas helfen.
Jedoch sind die oft zu mehrdeutig,
und in Englisch erst recht, denn Englisch ist nicht meine Muttersprache.
(Mein Englisch ist bestimmt nicht schlecht und wurde kürzlich aufgefrischt, als ich ein
englischsprachiges 800 seitiges Buch durchgearbeitet habe.)
Ich finde die Servlet Spec. zwar nicht mehrdeutig, aber dafür als trocken.
Trotzdem empfehle ich jedem der sih mit Servlets auseinandersetzt, die zumindest mal gelesen zu haben, dann sind Begriffe wie zB. Context nicht mehr unbekannt, der Ort für die web.xml und deren Inhalt werden auch erklärt, eben die "Original Doku" eben, IMHO immer besser als das was andere dann daraus machen.
Warum ist das was ganz anderes?
Naja, das sog. Deployment Format, also die War bzw. dessen Verzeichnisstruktur ist eben für den Prod Betrieb gedacht, entwickeln mit dem Original Format ist nicht empfehlenswert (kenne keine IDE die das macht) weil dann Quellen & Produkte vermischt würden (unter WEB-INF/classes kommen deine kompilierten Javaklassen, dann liegen die mitten in den Web Ressourcen), und seine SOurcen mitten zwischen JSP/HTML/JS/CSS/XML Dateien liegen zu haben ist auch keine Lösung.

Warum muss das gar nichts mit der fertigen Struktur einer WebApp zu tun haben, wenn ich über diese IDE doch genau diese oder jene lauffähige WebApp erstelle?
Wie sieht denn die "fertige Struktur einer WebApp" aus?
Templarthelast hat die grobe Struktur ja schon aufgezeigt.
Das fertige Format wird dann erst beim Export erzeugt.
Ist übrigens oft so, nicht nur bei WebApps so, auch zB. bei EARs, Eclipse RCP Projekten, etc. pp.
Das Delpoyment ist eben eine Sache, die Entwicklung eine andere.

Wie sieht denn die "fertige Struktur einer WebApp" aus?
Nach welchen Formregeln ist sie aufgebaut?
Wo genau wird sie gespeichert?
Gibt es überhaupt verbindliche und genormte Formregeln?

Im Grunde ist das doch nicht so kompliziert, wenn da ein paar Komponenten zusammenwirken
(sollen)

Es muss doch nur eine KLAR VEREINBARTE ORDUNG geben,
die dann ohne Mehrdeutigkeiten und entsprechend leicht verständlich
dargestellt wird.
Das steht alles eindeutig in der Serlvet Spec. ;)

Ich habe mal angenommen, (denn irgendwas muss ich annehmen), dass in
C:\Benutzer\tsitra\Dokumente\NetBeansProjects\
die Quelldateien der web-Anwendungen gespeichert sind, WEIL da pro neue in der IDE erstellte
web-app eine neues gleichnamiges Verzeichnis entstand.
Nach dem Kompileren kam darin dann noch ein Verzeichnis namens "build" hinzu
An der Struktur in der IDE darfst du dich eben nicht orientieren, s.o.

Mein Java EE 5 Lehrbuch kann doch nicht so veraltet sein!?
Die dort beschriebenen Verzeichnisstrukturen für die Arbeitsverzeichnisse von Webanwendungen
finde ich nur noch teilweise wieder.
k.A. welches buch du hast, kann dir aber sagen, dass ein Buch für den "richtigen Einstieg" (im Sinne von einem Prod Projekt) nicht reicht, höchstens für die Ausbildung (Uni/FH/Lehre).

Ansonsten lass dich nicht entmutigen, anfangs frustriert JEE alle so wie dich, ist nunmal sehr komplex und hat 'ne steile Lehrkurve, vor allem weil es da so viel gibt.
 
Zuletzt bearbeitet von einem Moderator:

Templarthelast

Bekanntes Mitglied
Ein Vorteil einer IDE ist, dass du nicht direkt auf das eigentliche Projektverzeichnis und, wie auch in deinem Fall, die Webappstruktur zugreifen musst, sondern es eben bequem von der IDE generiert wird.


Was mir beim lernen von EE nach ein paar Grundlagen geholfen hat, waren die JBoss Beispiele, die man sich anschauen kann und ein bisschen rumspielen kann, ohne sich zuerst um die Konfiguration des Projekts kümmern. Als erste Grundlage kann ich das Videotutorial "Einstieg in Java EE6" von Video2Brain empfehlen.
 

Ähnliche Java Themen

Neue Themen


Oben