JSF 1.2 unter Netbeans 6 mit Tomcat 6.0 ->Navigationsprob

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo zusammen!

Ich versuche seit einiger Zeit eine JSF Navigation mit Netbeans 6.0 / Tomcat 6 zu realisieren. Das klappt soweit auch prima wie gewohnt aus Netbeans 5.5, doch sobald die quelldatei im WEB-INF Ordner liegt, funktionieren meine Verweise nicht mehr, und ich bekomme die Meldung:

HTTP Status 404 -

type Status report

message

description The requested resource () is not available.
Apache Tomcat/6.0.14

unter Netbeans 5.5 mit Tomcat 5.5 hat dies immer wunderbar funktioniert.

3 Files zur erläuterung: Verzeichnisstruktur

/welcomeJSF.jsp
/WEB-INF/JSP/enter.jsp
/WEB-INF/JSP/login.jsp

Aufruf von welcomeJSF.jsp nach /WEB-INF/JSP/enter.jsp

Ausschnitt faces-config.xml:

Code:
    <navigation-rule>
        <from-view-id>/welcomeJSF.jsp</from-view-id>
            <navigation-case>
                <from-outcome>toLogin</from-outcome>
                <to-view-id>/WEB-INF/JSP/enter.jsp</to-view-id>
            </navigation-case>
    </navigation-rule>
...

Aufruf aus welcomeJSF.jsp:
Code:
<f:view>
              <h:form>
	           <h:commandButton value="enter" action="toEnter"></h:commandButton>
	      </h:form> 
        </f:view>

soweit so gut, die verlinkung funktioniert ohne Probleme, nun von WEB-INF/JSP/enter.jsp nach WEB-INF/JSP/login.jsp

Ausschnitt faces-config.xml:

Code:
    <navigation-rule>
        <from-view-id>/WEB-INF/JSP/enter.jsp</from-view-id>
        <navigation-case>
            <from-outcome>toLogin</from-outcome>
            <to-view-id>/WEB-INF/JSP/login.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>
...

Aufruf aus /WEB-INF/JSP/enter.jsp
Code:
        <f:view>
         <h:form>
	     <h:commandButton value="Login" action="toLogin"></h:commandButton>
	  </h:form> 
        </f:view>

hier kommt nun immer die oben angesprochene Fehlermeldung, während es unter Netbeans 5.5 (JSF 1.1) mit Tomcat 5.5 einwandfrei funktioniert.

Hat jemand vielleicht einen Rat?
 
G

Gast

Gast
entschuldigt, ich habe mich natürlich vertippt, bei der ersten verlinkung ist das <from-outcome> attribut natürlich toEnter
 
M

maki

Gast
Der Client (Browser) darf nicht auf WEB-INF zugreifen, es können nur Server-interne forwards auf Dateien unter WEB-INF gemacht werden.

Aus der Servlet SPec 2.4:
SRV.9.5 Directory Structure
...
A special directory exists within the application hierarchy named “WEB-INF”.
This directory contains all things related to the application that aren’t in the document root of the application. The WEB-INF node is not part of the public document tree of the application. No file contained in the WEB-INF directory may be served directly to a client by the container. However, the contents of the WEBINF directory are visible to servlet code using the getResource and getResource- AsStream method calls on the ServletContext, and may be exposed using the RequestDispatcher calls. Hence, if the Application Developer needs access, from servlet code, to application specific configuration information that he does not wish to be exposed directly to theWeb client, he may place it under this directory.
Since requests are matched to resource mappings in a case-sensitive manner, client requests for ‘/WEB-INF/foo’, ‘/WEb-iNf/foo’, for example, should not result in contents of the Web application located under /WEB-INF being returned, nor any form of directory listing thereof.
 
G

Gast

Gast
danke für die schnelle Antwort, ganz ist es mir leider noch nicht klar.

so wie ich das bisher verstanden habe, werden die JSF Rules ja über ein JSF-ControllerServlet realisiert, wären somit serverintern, nicht wahr?

und unter Netbeans 5.5 war WEB-INF ja auch bereits "non public", und dort funktioniert es über die JSF Navigation.

Oder kann ich in WEB-INF gelegene JSPs gar nicht mehr navigieren über JSF?
 
M

maki

Gast
Oder kann ich in WEB-INF gelegene JSPs gar nicht mehr navigieren über JSF?
Doch, kannst du, hast du doch schon gemacht und es hat funktoniert, aber eben nur Server intern.

Was aber nicht geht ist folgendes:
Code:
<h:commandButton value="Login" action="toLogin"></h:commandButton>
Hierbei wird toLogin ersetzt durch den richtigen Pfad, welcher naürlich in WEB-INF/JSP Verzeichniss zeigt, der Browser darf ber nicht darauf zugreifen.

Ich finde es sehr unglücklich, sich mit JSF auseinander zu setzen ohne die grundlengenden Technologien (Servlets und JSPs) verstanden zu haben, mit anderen Worten: Das kann nix werden.
 
G

Gast

Gast
ich gebe zu, was Servlets und JSPs betrifft bin ich nicht 100% fit, da ich beides erst vor kurzem gelernt habe, aber ich denke eine gewisse Grundkenntnis bringe ich mit.

Die selbe Übung habe ich bereits ohne JSF mit einem Controller Servlet und JSPs programmiert. Dort hatte ich natürlich ein ähnliches Problem was den Zugriff auf WEB-INF/ betrifft, was man dort im Controller über den getRequestDispatcher lösen konnte.

Hierbei wird toLogin ersetzt durch den richtigen Pfad, welcher naürlich in WEB-INF/JSP Verzeichniss zeigt, der Browser darf ber nicht darauf zugreifen.

Wenn die Ursache dafür ist, dass ich nicht auf einen Pfad zugreifen darf, der in WEB-INF/JSP liegt, warum kann ich überhaupt erst mit JSF auf enter.jsp zugreifen, welche ja auch im WEB-INF/ verzeichnis liegt?

Daher schein ich ja nur nicht forwarden zu können, wenn die Quelljsp ebenfalls im WEB-INF/Verzeichnis liegt.

Tut mir leid, wenn es wirklich an etwas grundsätzlichen fehlen sollte, dann setz ich mich damit gern nochma auseinander, aber das Problem erschließt sich mir einfach noch nicht ganz, zumal es ja auch unter Netbeans 5.5 (mit tomcat 5.5) im Browser funktionierte, und nur unter 6.0 (mit tomcat 6.0) nicht mehr. Dein Statement klang eher, als wäre es allgemein gültig, oder irre ich mich?

Nochmals Danke für deine Hilfe
 
M

maki

Gast
Wenn die Ursache dafür ist, dass ich nicht auf einen Pfad zugreifen darf, der in WEB-INF/JSP liegt, warum kann ich überhaupt erst mit JSF auf enter.jsp zugreifen, welche ja auch im WEB-INF/ verzeichnis liegt?
In deiner JSP (!) schreibt du eine Action, die als Ziel eine JSP unter WEB-INF hat. Dann müsste der Browser auf das WEB-INF Verz. zugreifen, und genau das geht ja nicht.

Ein "from-outcome" wird komplett Serverseitig abgehandelt, da die Managedbean den outcome liefert, es wird also ein forward intern auf dem Server gemacht, das geht, da ja Servlets auf WEB-INF zugreifen dürfen.

Tut mir leid, wenn es wirklich an etwas grundsätzlichen fehlen sollte, dann setz ich mich damit gern nochma auseinander, aber das Problem erschließt sich mir einfach noch nicht ganz, zumal es ja auch unter Netbeans 5.5 (mit tomcat 5.5) im Browser funktionierte, und nur unter 6.0 (mit tomcat 6.0) nicht mehr. Dein Statement klang eher, als wäre es allgemein gültig, oder irre ich mich?
Ich denke es wäre am besten für dich, wenn du Servlets sehr gut verstehst, bevor du dich an JSF wagst, ansonsten ist das sehr frustrierend, da du nicht wirklich verstehst was da passiert (oder auch nicht passiert), und man kann nunmal keine JSF Anwendungen schreiben ohne Servlets zu verstehen, JSP ist nur eine "kleinere" Erweiterung zu Servlets, soll heissen: Einmal Servlets verstanden, sind JSPs sehr leicht.

Meiner Meinung nach hat Netbeans da einen Fehler, denn laut Spek ist es absolut verboten das ein Client direkt auf WEB-INF zugreift, dass war schon immer so, stand in jeder Servlet Spek die ich jemals gelesen habe.

Wichtig ist, dass du deine Anwendung so schreibst, dass sie auf dem Server läuft, nicht nur in der IDE.
Die Servlet Spek. definiert den Standard, wenn du dich daran hälst, läuft deine Anwednung sogar auf jedem Servlet Container, dass alleine ist sehr viel Wert.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Navigation verhindern unter bestimmten Voraussetzungen Allgemeines EE 3
thor_norsk Glassfish Server unter Windows startet nicht! Allgemeines EE 20
feinperligekohlensaeure JSF Keine Tabelle / Buttons werden unter Windows angezeigt + Apple schon Allgemeines EE 9
M Glassfish Deployment-Problem unter Eclipse Allgemeines EE 0
J Logging und Monitoring unter Tomcat Allgemeines EE 2
H Bean läuft unter GlassFish, aber JBoss nicht Allgemeines EE 5
D HTTPS unter JAX-WS verwenden Allgemeines EE 7
E Servlet unter mehreren Adressen Allgemeines EE 16
ruutaiokwu ejb hot deployment unter jboss 4.2.3 Allgemeines EE 7
M Messwertarchiv unter J2EE Allgemeines EE 4
I Web-Projekt zum Laufen bringen unter Eclipse Allgemeines EE 3
W Speicher-Problem bei WebApp unter Tomcat, Struts, Hibernate Allgemeines EE 3
M embedded jboss unter eclipse 3.3 Allgemeines EE 2
A Wie werden Template Engines unter J2EE umgesetzt? Allgemeines EE 3
G Tomcat unter Eclipse starten Allgemeines EE 9
D JBOSS unter Eclipse Allgemeines EE 2
H Hilfe! Wie erstelle ich einen Interceptor unter jBoss? Allgemeines EE 3
A Tomcat undeploy unter Windows klappt nicht wegen struts.jar Allgemeines EE 2
K war-Archiv unter Tomcat neu entpacken lassen Allgemeines EE 3
S .war Datei erzeugen unter Eclipse Allgemeines EE 2
E J2EE unter Eclipse Allgemeines EE 6
C Grafische Komponenten unter Struts jsp (Liste) Allgemeines EE 4
C JBoss Server unter Eclipse 3.1 Allgemeines EE 2
D JAAS unter JBoss Allgemeines EE 5
FsMarine Probleme beim ausführen von JSP dateien unter Tomcat Allgemeines EE 4
T Servlet-Mapping und Welcome-File-List unter Websphere? Allgemeines EE 2
K Anfängerfrage zu JDBC installation unter TOMCAT 5.0 Allgemeines EE 4
daLenz jboss 3.2.5 konfiguration unter eclipse Allgemeines EE 2
M Problem mit Roles unter JBoss 3.2.5 Allgemeines EE 3
C Persistence Provider wechseln [Netbeans] Allgemeines EE 1
P JavaEE- Projekt in Netbeans Allgemeines EE 0
J Netbeans + JavaEE. NullPointerException Allgemeines EE 3
O Java EE in Netbeans + allgemeine Fragen Allgemeines EE 5
A Mit NetBeans .war-Datei erzeugen Allgemeines EE 3
G Netbeans und JavaEE - Projects Allgemeines EE 4
A NetBeans: (use -source 5 or higher to enable generics) Allgemeines EE 4
S Netbeans 5.5 Visual Web Pack Problem mit INSERT und PK Allgemeines EE 4
M NetBeans 5.5 installiert und schon hängt was beim Deployen Allgemeines EE 5
S Tomcat Application Path bestimmen Allgemeines EE 0
TheWhiteShadow JSF plugins für tomcat webapp Allgemeines EE 0
X Tomcat checkParachute Allgemeines EE 3
C Servlet Tomcat/Jersey findet REST-Service nicht Allgemeines EE 3
J Global JNDI Tomcat Allgemeines EE 0
N WebService WAR-File auf Tomcat-Server Allgemeines EE 1
C WebSocket in Tomcat wirft 404 Allgemeines EE 0
S Eclipse mit Tomcat und Jersey Allgemeines EE 7
S Fehlersuche in Eclipse/Tomcat -> Error-log?? Allgemeines EE 2
S Tomcat und 404 -> von jetzt auf gleich Allgemeines EE 4
L JNDI auf Tomcat mit EE Allgemeines EE 4
E Servlet Tomcat Method Signature Resolution Allgemeines EE 7
aze Tomcat:Error Pages werden nicht angezeigt Allgemeines EE 4
D JSF JSF 2.0 + ICEFaces + Tomcat 7 Allgemeines EE 3
R Sessionmanagement und Tomcat Allgemeines EE 6
W Tomcat Support mit SLA? Allgemeines EE 3
P Tomcat lädt falsche Datei obwohl richtig angegeben Allgemeines EE 11
N Tomcat funktioniert nach shutdown/startup nicht mehr korrekt Allgemeines EE 9
B Tomcat, JNDI und datasource - Konfiguartion Allgemeines EE 2
JimPanse Tomcat Fehler nach redeploy Allgemeines EE 5
A Java Tomcat findet Website nicht Allgemeines EE 8
S Anfängerfrage Eclipse/Tomcat Allgemeines EE 4
H Installer für Tomcat-Anwendung Allgemeines EE 5
A Tomcat in Eclipse Allgemeines EE 11
T Tomcat: Sessions bleiben zu lange erhalten Allgemeines EE 13
C Tomcat Zugriff auf lokale Dateien Allgemeines EE 2
A Tomcat, Exceptions beim redeploy Allgemeines EE 4
P Hilfe: Tomcat periodischer Absturz Allgemeines EE 5
MQue Tomcat reload Allgemeines EE 4
neurox Tomcat stoppen Allgemeines EE 1
S Unterschied zwischen Tomcat und Application Server? Allgemeines EE 3
MQue Tomcat PermGen Allgemeines EE 7
MQue Tomcat Methodenaufruf Allgemeines EE 3
P Eclipse Tomcat Plugin funktioniert nicht mit externem TC-Server? Allgemeines EE 4
MQue TCP- Verbindung nach Tomcat- Start (global) starten Allgemeines EE 4
reibi Tomcat Proxy eintragen Allgemeines EE 2
P CXF Project auf Tomcat laufen lassen - wie? Allgemeines EE 35
R (TOMCAT] Installation Tomcat auf WinXP Allgemeines EE 8
S Tomcat + Eclipse Allgemeines EE 6
T Security Manager in Tomcat Allgemeines EE 2
S Unterschiedliche Pfade bei Tomcat Allgemeines EE 4
ps EJB3 in Tomcat. das hat selbst mich erstaunt Allgemeines EE 18
B Tomcat Manager - .war Datei hochladen. Einfache Frage Allgemeines EE 5
G Probleme im Tomcat - loading WebappClassLoader Allgemeines EE 3
O ApplicationServer vs. Tomcat Allgemeines EE 5
G Verbindung zu Tomcat Allgemeines EE 15
B Tomcat -> Funktions User Credentials hinterlegen Allgemeines EE 7
B fmt:setBundle => Wo liegt die Properties-Datei im Tomcat? Allgemeines EE 3
U Tomcat Compilierproblem Allgemeines EE 2
A Tomcat -- JSP: komisches Problem Allgemeines EE 11
M Gelegentlicher Absturz Tomcat Anwendung: PermGen Space Allgemeines EE 6
R Error ServletContextListener auf Tomcat 6 Allgemeines EE 2
Y myFaces 1.2 und Tomcat 5.x / 6.0 Allgemeines EE 9
S tomcat session timeout - und was danach? Allgemeines EE 1
A Tomcat startet nicht, Einstellungsfehler? Allgemeines EE 3
S Auf Datei ausserhalb des Tomcat zugreifen Allgemeines EE 4
S JSP / Tomcat / Eclipse / Unable to compile class for JSP Allgemeines EE 4
E JBoss mit existierendem Tomcat nutzen? Allgemeines EE 4
M JSP: Tomcat: Serverfehler 500 nur beim IE. Allgemeines EE 2
O eclipse - tomcat: Problem bei einfachem Webservice Allgemeines EE 16
L Tomcat Service mit JPDA debugging starten Allgemeines EE 2
J Tomcat: "Unable to get connection, DataSource invalid&q Allgemeines EE 8

Ähnliche Java Themen

Neue Themen


Oben