Frage

Ok, ich habe über meine erste Stackoverflow laufen seit dieser Stelle kam, dachte ich, das ein :-) schreiben muss, ist. Meine Umgebung ist Seam 2.0.1.GA, JBoss 4.2.2.GA und ich bin mit JSF. Ich bin in dem Prozess von einem facelets der Umwandlung zu JSP sehe Vorteil einiger bestehenden JSP-Tags auf unserer bestehende Website verwendet zu nehmen. Ich habe die Gesichter-config.xml und die web.xml Konfigurationsdateien und begann den folgenden Fehler zu erhalten, wenn eine jsp Seite zu machen versucht. Wer noch keine Gedanken haben?

  

2008-09-17 09: 45: 17.537 DEBUG   [Org.jboss.seam.contexts.FacesLifecycle]   Beginnen JSF Anfrage für /form_home.jsp   2008-09-17 09: 45: 17.587 ERROR   [Org.apache.catalina.core.ContainerBase. [Jboss.web]. [Localhost]. [/]. [Faces   Servlets]] Servlet.service () für   Servlet Faces Servlet warf Ausnahme   java.lang.StackOverflowError            bei org.apache.catalina.core.ApplicationHttpRequest.getAttribute (ApplicationHttpRequest.java:210)            bei org.apache.catalina.core.ApplicationHttpRequest.getAttribute (ApplicationHttpRequest.java:222)            bei org.apache.catalina.core.ApplicationHttpRequest.getAttribute (ApplicationHttpRequest.java:222)            bei org.apache.catalina.core.ApplicationHttpRequest.getAttribute (ApplicationHttpRequest.java:222)            ...

Meine faces-config.xml-Datei ist jetzt leer ohne FaceletsViewHandler:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xi="http://www.w3.org/2001/XInclude"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
   http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">

</faces-config>

Und meine Web.xml-Datei:

<?xml version="1.0"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <!-- Ajax4jsf -->
 <context-param>
  <param-name>org.richfaces.SKIN</param-name>
  <param-value>blueSky</param-value>
 </context-param>
  <!-- Seam -->
 <listener>
  <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
 </listener>


 <filter>
  <filter-name>Seam Filter</filter-name>
  <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
 </filter>

 <filter-mapping>
  <filter-name>Seam Filter</filter-name>
  <url-pattern>*.jsp</url-pattern>
 </filter-mapping>

 <servlet>
    <servlet-name>Seam Resource Servlet</servlet-name>
     <servlet-class>org.jboss.seam.servlet.SeamResourceServlet
     </servlet-class>
 </servlet>
 <servlet-mapping>
   <servlet-name>Seam Resource Servlet</servlet-name>
   <url-pattern>/seam/resource/*</url-pattern>
 </servlet-mapping>
 <!-- Seam end --> 

 <!-- JSF -->
 <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.jsp</param-value>
 </context-param>

 <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>*.jsp</url-pattern> 
 </servlet-mapping>
War es hilfreich?

Lösung

Ich war in der Lage, dieses Problem herauszufinden. Anscheinend kann man nicht web.xml konfiguriert denselben param-Wert von .jsp für Javax.faces.DEFAULT_SUFFIX als Faces Servlet-URL-Muster haben (* .jsp). Wenn Sie Ihre URL-Muster ändern, um .jspx oder / whateverdirnameyouwant / die Anwendung startet ohne Stack-Überlauf-Fehler auf. (Anmerkung:. Der Schlüssel ist, dass DEFAULT_SUFFIX und Faces Servlet-URL-Muster nicht gleich sein kann, unabhängig davon, was sie sind) Hoffe, das hilft jemand anderes die dieses spezielle Problem auftritt

.

Andere Tipps

Stack-Überlauf in Java sind fast immer durch eine unendliche Rekursion / Methodenaufrufe verursacht. In Ihrem Fall des Stack-Trace angegeben, erscheint es getAttribute () 'wird wiederholt, bis Absturz genannt. Während ich nicht vertraut mit den besonderen Umgebungen sind Sie verwenden, würde ich vorschlagen, Ihren .jsp Code für jede diese Art von Verhalten Prüfung (zum Beispiel zwei Methoden, die sie gegenseitig anrufen)

Also, ich hatte einen ähnlichen Fehler. Für mich war es, dass ich ein JSF-Projekt hatte, und ich war Herumspielen mit den Dateiendungen. Zu Beginn hatte ich meine alle Web-Dateien mit der Erweiterung .jsp. Das war zu arbeiten, aber dann wollte ich sie alle .jsf sein, dann nach, dass ich alle gingen in auf mit .xhtml. In dem Prozess, änderte sich meine web.xml xhtml und JSF zu empfangen. die Datei web.xml ändern war in Ordnung. Was ich war die Stackoverflow, dass ich mit einem ui.include Tag hatte index.xhtml zu header.jsf zeigen. So hatte ich eine xhtml-Datei in eine JSF-Datei verweist. Ich hatte gedacht, dass web.xml der Lage wäre, dies zu handhaben, aber es hat nicht, ich bekam die Stackoverflow. Also, um dieses Problem zu beheben, jetzt sind alle meine JSF-Dateien haben Erweiterung .xhtml und verschachtelte ui:. Umfassen Tags Punktdateien .xhtml

Auf der anderen Seite jedoch kann der Browser-URL des index.jsp, index.jsf, Griff index.xhtml gut. So ist die web.xml (mit Servletzuordnungen für jsp, JSF und xhtml) verarbeitet die Browser-URL ganz gut, aber nicht für das, was mein Problem oben hervorgehoben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top