Anzeige:
Ergebnis 1 bis 3 von 3

Thema: JSF, Tomcat, Eclipse

  1. #1
    Registrierter Benutzer
    Registriert seit
    28.03.2007
    Beiträge
    10

    JSF, Tomcat, Eclipse

    Hallo,
    ich arbeite gerade dieses Tutorial durch:
    http://www.exadel.com/tutorial/jsf/j...kickstart.html

    Beim Aufruf im Browser bekomme ich die Meldung das die Datei pages/inputname.jsf nicht existiert. Das ist korrekt, da diese pages/inputname.jsp heißt. Im Tutorial ist dazu dieser Absatz interessant:

    If you look at the path for the forward, you'll notice the file suffix is .jsf and not .jsp. This is used here, because in the web.xml file for the application *.jsf is the URL pattern used to signal that the forwarded page should be handled by the JavaServer Faces servlet within Tomcat.
    Was müsste nun richtiger weise in der web.xml stehen?

    Bei mir steht folgendes:
    Code:
      <!-- Use Documents saved as *.jsf for Facelets-->
    	<context-param>
    		<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    		<param-value>.jsf</param-value>
    	</context-param>
    
    
    	<!-- Faces Servlet -->
    	<servlet>
    		<servlet-name>Faces Servlet</servlet-name>
    		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    
    
    	<!-- Faces Servlet Mapping -->
    	<servlet-mapping>
    		<servlet-name>Faces Servlet</servlet-name>
    		<url-pattern>*.jsf</url-pattern>
    	</servlet-mapping>
    Wäre dankbar für eure Hilfe!

    Viele Grüße
    Björn

  2. #2
    Registrierter Benutzer
    Registriert seit
    28.03.2007
    Beiträge
    10
    Habe das Problem mittlerweile beseitigt. Es war ein falscher Eintrag in der faces-config.xml.

    Danach hatte ich das Problem das er die jstl.jar benötigte. Diese habe ich hinzugefügt und bekomme nun die folgende Fehlermeldung:

    Code:
    	at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:415)
    	at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:475)
    	at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:143)
    	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
    29.02.2008 11:32:02 com.sun.faces.lifecycle.Phase doPhase
    SCHWERWIEGEND: JSF1054: (Phase ID: RENDER_RESPONSE 6, View ID: /pages/inputname.jsf) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@1a85d38]
    29.02.2008 11:32:02 org.apache.catalina.core.ApplicationDispatcher invoke
    SCHWERWIEGEND: Servlet.service() for servlet Faces Servlet threw exception
    java.lang.StackOverflowError
    	at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:576)
    	at org.apache.catalina.connector.Request.doGetSession(Request.java:2270)
    	at org.apache.catalina.connector.Request.getSession(Request.java:2075)
    	at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
    	at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
    	at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
    	at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
    	at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
    	at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
    	at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
    Die letzten 2 Zeilen Wiederholen sich dann endlos.

    Hat jemand einen Tipp?

    Viele Grüße
    BjA

  3. #3
    Registrierter Benutzer
    Registriert seit
    09.02.2007
    Beiträge
    22

    Ähnliches Problem

    Hallo,

    Ich habe ein ähnliches problem bei folgendem einfachen Beispiel.
    Da ich Abhängigkeiten bei den JSP Seiten in meiner Webanwendung habe, möchte ich meine JSF Seiten mit der Endung *.jsf Verwenden.

    Meine Konfiguration sieht wie folgt aus:

    Auszug aus meiner web.xml:
    Code:
    <context-param>
            <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
            <param-value>.jsf</param-value>
    </context-param>
    
    	<!-- #############  Faces Servlet  #############  -->
    	<servlet>
    		<servlet-name>JavaServer Faces Servlet</servlet-name>
    		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    
    	<!-- ############# Mapping ###############  -->
    	<servlet-mapping>
    		<servlet-name>JavaServer Faces Servlet</servlet-name>
    		<url-pattern>/faces/*</url-pattern>
    	</servlet-mapping>
    Meine faces-config.xml:
    Code:
    <faces-config>
    
     	<navigation-rule>
        	<from-view-id>/eingabe.jsp</from-view-id>
        	<navigation-case>
          		<from-outcome>success</from-outcome>
          		<to-view-id>/ausgabe.jsp</to-view-id>
        	</navigation-case>  
    	</navigation-rule>
    
      	<managed-bean>
      		<managed-bean-name>Square</managed-bean-name>
    		<managed-bean-class>com.edu.jsf.bean.SquareBean</managed-bean-class>
    		<managed-bean-scope>session</managed-bean-scope>
    	</managed-bean> 
    
    </faces-config>
    die JSP Seite (eingabe.jsf):
    Code:
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
    <html>
    <head>
    	<title>Berechnung eines Flächeninhaltes</title>
    </head>
    
    <body>
    <f:view>
    	<h3>JSF-Beispielanwendung zur Berechnung eines Flächeninhaltes:</h3>
        <i>Dieses Programm berechnet aufgrund der Eingabe einer 
        Seitenlänge den Flächeninhalt eines Quadrates.</i>
        <br><br>
        
        <h:form id="inputForm">
    
    		Bitte geben Sie eine Seitenlänge ein:	
    		<h:inputText value="#{Square.length}" /> 
    		
    		<h:commandButton value="Berechnen" action="success" /> 
    	
    	</h:form>
    
    </f:view>
    </body>
    </html>
    Das Problem das ich jetzt dabei habe:
    Ich teile über die Einstellung DEFAULT_SUFFIX im Deployment Descriptor mit, dass ich *.jsf Dateien rendern möchte.
    Ich kann das ganze auf meinem Websphere 6.0 Server deployen, und dann beim Aufruf der Seite im Browser hab ich das Problem, dass ich keine Eingabe oder Formular vorfinde.
    Es wird 1:1 rausgeschrieben und nicht von der JSF Engine gerendert.

    wenn ich jedoch meinen DEFAULT_SUFFIX weglasse und auf Endung *.jsp die Seiten benenne klappt alles. Ich bin allerdings in meiner Enterprise Anwendung gebunden, dass ich die Endung *.jsf verwende, da ich Abhängigkeiten in den JSP Seiten habe.

    hat jemand eine Idee?

    danke,
    Klaus

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •