JSF Servlet Mapping

Dieses Thema JSF - Servlet Mapping im Forum "Web Tier" wurde erstellt von denis7788, 17. Nov. 2015.

Thema: Servlet Mapping Hallo, da ich Gruppen von Seiten für bestimmte Nutzerrollen zugänglich machen möchte, wollte ich das auch über die...

  1. Hallo,

    da ich Gruppen von Seiten für bestimmte Nutzerrollen zugänglich machen möchte, wollte ich das auch über die Ordnerstruktur abbilden, z.B.:
    WebContent/pages/user/xyz.xhtml
    WebContent/pages/admin/abc.xhtml

    Ich habe eine Seite testweise im user Ordner abgelegt und die Seite ist auch erreichbar. Aber ich erhalte eine Warnung beim Aufruf der Seite:
    Code (Text):
     WARNING [javax.enterprise.resource.webcontainer.jsf.renderkit] (default task-2) JSF1090: Navigations-Fall wurde für Komponente j_idt10 nicht aufgelöst.
    Die Warnung tritt nur auf, wenn ich die xhtml Datei in einem Unterpfad abgelegt habe. Unter dem Rootverzeichnis ist alles in Ordnung.
    Die Seite wird auch als Servlet erkannt, ich kann auf Backing Beans zugreifen.

    In der web.xml habe ich ein weiteres url-pattern hinzugefügt, was aber auch nichts bringt. (btw, steht *.xhtml für alle xhtml Dateien, egal in welchem Subpfad?)
    HTML:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
      <display-name>ProjectTutorialsWeb</display-name>
     
      <welcome-file-list>
          <welcome-file>index.xhtml</welcome-file>
      </welcome-file-list>
     
      <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
        <url-pattern>/secured/user/index.xhtml</url-pattern>
      </servlet-mapping>
     
      <!-- Security Constraints -->
      <security-constraint>
          <web-resource-collection>
              <web-resource-name>Resources</web-resource-name>
              <url-pattern>/javax.faces.resource/*</url-pattern>
        </web-resource-collection>
      </security-constraint>
     
      <security-constraint>
          <web-resource-collection>
              <web-resource-name>registration</web-resource-name>
              <url-pattern>/registration.xhtml</url-pattern>
        </web-resource-collection>
      </security-constraint>
     
      <security-constraint>
              <web-resource-collection>
                  <web-resource-name>user</web-resource-name>
                  <url-pattern>/*</url-pattern>
                  <http-method>POST</http-method>
                <http-method>GET</http-method>
                <http-method>PUT</http-method>
                <http-method>DELETE</http-method>
              </web-resource-collection>
              <auth-constraint>
                  <role-name>USER</role-name>
              </auth-constraint>
      </security-constraint>
     
      <!-- Login method -->
      <login-config>
          <auth-method>FORM</auth-method>
          <realm-name>projecttutorials</realm-name>
          <form-login-config>
              <form-login-page>/login.xhtml</form-login-page>
              <form-error-page>/error.xhtml</form-error-page>
          </form-login-config>
      </login-config>
     
      <!-- Security roles -->
      <security-role>
          <role-name>USER</role-name>
      </security-role>
     
    </web-app>
    faces-config:
    HTML:
    <?xml version="1.0" encoding="UTF-8"?>
    <faces-config
       xmlns="http://xmlns.jcp.org/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
       version="2.2">

    </faces-config>
     
     
  2. Vielleicht hilft dir das Grundlagen Training weiter --> *Klick*
  3. stg
    stg
    Sieht für mich auf den ersten Blick so aus, als hättest du auf der Seite selbst irgendwo einen ungültigen Navigation Case.
    Post doch mal den entsprechenden Abschnitt aus der aufgerufenen .xhtml Datei. Speziell natürlich die Komponente mit der ID j_idt10 (Vermutlich ein Button oder Link)
     
  4. Ich habe alle Seiten aufgerufen und im Quelltext nach der id gesucht. Auf keiner der Seiten wurde diese ID generiert. Ich habe auch alle Template Dateien durchsucht, dort kommt diese ID auch nicht vor.
    Diese ID muss doch aber eigentlich in einer der Seiten vorkommen, oder nicht?
     
  5. stg
    stg
    Nicht in den xhtml-Seiten, aber im generierten HTML output müsstest du fündig werden.
     
  6. Kostenloses Java-Grundlagen Training im Wert von 39 €
    Schau dir jetzt hier das Tutorial an und starte richtig durch!