Ok, I think I'm iterating toward some clues. I copied in everything from the problem app, except using a very trivial "main.jsp", and then I started adding elements. It was still ok after adding a couple RichFaces elements, but when I "jumped to the end" and copied in the entire "main.jsp" from the problem app (which works in WebLogic), running it blew up Tomcat. I should be able to narrow this down to something.
> -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On > Behalf Of Matthias Wessendorf > Sent: Wednesday, January 23, 2008 9:34 PM > To: MyFaces Discussion > Subject: Re: Still trying to move simple RichFaces 3.1.3 app > from BEA JSF 1.1 to MyFaces 1.1.5 (Tomcat) > > hrm. > > what happens if you "hit" a very simple page. > > <f:view> > <h:outputText value="HAllo" /> > </f:view> > > have you tried to set a break point inside the FacesServlet ? > (like in service(), where the lifecycle.execute(facesContext) > is launched) > > perhaps it maybe helpful, to upload a simple demo app to our jira? > > Thanks! > Matthias > > On Jan 23, 2008 9:18 PM, Karr, David <[EMAIL PROTECTED]> wrote: > > I asked about this a few days ago, but I'm not making any > progress on > > this. I'd appreciate any hints on what I might be doing wrong. > > > > I have a simple app using the default JSF 1.1 implementation in > > WebLogic 9.2.2, which also uses RichFaces 3.1.3. It works > at this point. > > > > I exported the WAR file and I added to the WEB-INF/lib all the > > libraries that come with the MyFaces 1.1.5 distribution, > resulting in > > the > > following: > > > > * commons-beanutils-1.7.0.jar > > * commons-codec-1.3.jar > > * commons-collections-3.2.jar > > * commons-digester-1.6.jar > > * commons-el-1.0.jar > > * commons-lang-2.1.jar > > * commons-logging-1.0.4.jar > > * jstl-1.1.0.jar > > * myfaces-api-1.1.5.jar > > * myfaces-impl-1.1.5.jar > > * richfaces-api-3.1.3.GA.jar > > * richfaces-impl-3.1.3.GA.jar > > * richfaces-ui-3.1.3.GA.jar > > > > I then re-jared the WAR file, and then copied it to the > Tomcat 5.5.25 > > webapps dir. It deployed. I then tried to go to the URL > for the app, > > and Tomcat very quickly hit a StackOverflow error. > > > > The Catalina log had the following log info and exception: > > > > ------------------ > > Jan 23, 2008 8:54:12 PM > > org.apache.myfaces.shared_impl.config.MyfacesConfig > > getBooleanInitParameter > > INFO: No context init parameter 'org.apache.myfaces.PRETTY_HTML' > > found, using default value true Jan 23, 2008 8:54:12 PM > > org.apache.myfaces.shared_impl.config.MyfacesConfig > > getBooleanInitParameter > > INFO: No context init parameter > 'org.apache.myfaces.ALLOW_JAVASCRIPT' > > found, using default value true > > Jan 23, 2008 8:54:12 PM > > org.apache.myfaces.shared_impl.config.MyfacesConfig > > getBooleanInitParameter > > INFO: No context init parameter > > 'org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS' found, using > > default value true Jan 23, 2008 8:54:12 PM > > org.apache.myfaces.shared_impl.config.MyfacesConfig > getCurrentInstance > > INFO: Tomahawk jar not available. Autoscrolling, DetectJavascript, > > AddResourceClass and CheckExtensionsFilter are disabled now. > > Jan 23, 2008 8:54:12 PM > > org.apache.myfaces.shared_impl.config.MyfacesConfig > getCurrentInstance > > INFO: Starting up Tomahawk on the > MyFaces-JSF-Implementation Jan 23, > > 2008 8:54:14 PM org.apache.myfaces.lifecycle.PhaseListenerManager > > informPhaseListenersAfter > > SEVERE: Exception in PhaseListener RENDER_RESPONSE(6) afterPhase > > java.lang.NullPointerException > > at > > > org.ajax4jsf.context.AjaxContextImpl.getSubmittedRegionClientId(AjaxCo > > nt > > extImpl.java:574) > > at > > > org.ajax4jsf.context.AjaxContextImpl.isAjaxRequest(AjaxContext > Impl.java: > > 474) > > at > > > org.ajax4jsf.context.AjaxContextImpl.isAjaxRequest(AjaxContext > Impl.java: > > 466) > > at > > > org.ajax4jsf.event.AjaxPhaseListener.afterPhase(AjaxPhaseListener.java > > :7 > > 8) > > ------------------ > > > > Looking in the RichFaces source code, line 466 is the one > line in this > > method: > > > > public boolean isAjaxRequest() { > > return > isAjaxRequest(FacesContext.getCurrentInstance()); > > } > > > > So, for whatever reason, > "FacesContext.getCurrentInstance()" is null. > > > > In the "localhost" log, there was the following extremely truncated > > exception (it went on forever, repeating the top two stack entries): > > > > --------------- > > SEVERE: Servlet.service() for servlet Faces Servlet threw exception > > java.lang.StackOverflowError > > at > > > javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletReq > > ue > > stWrapper.java:216) > > at > > > org.apache.catalina.core.ApplicationHttpRequest.getSession(Application > > Ht > > tpRequest.java:545) > > at > > > javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletReq > > ue > > stWrapper.java:216) > > at > > > org.apache.catalina.core.ApplicationHttpRequest.getSession(Application > > Ht > > tpRequest.java:545) > > --------------- > > > > If it helps, here is my faces-config.xml and web.xml: > > > > --------------------- > > <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" > > version="2.4" > > xmlns="http://java.sun.com/xml/ns/j2ee" > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee > > http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> > > <display-name>TabPanel</display-name> > > <welcome-file-list> > > <welcome-file>index.html</welcome-file> > > <welcome-file>index.htm</welcome-file> > > <welcome-file>index.jsp</welcome-file> > > <welcome-file>default.html</welcome-file> > > <welcome-file>default.htm</welcome-file> > > <welcome-file>default.jsp</welcome-file> > > </welcome-file-list> > > <context-param> > > <param-name>javax.faces.STATE_SAVING_METHOD</param-name> > > <param-value>server</param-value> > > </context-param> > > <context-param> > > <param-name>com.sun.faces.validateXml</param-name> > > <param-value>true</param-value> > > </context-param> > > <context-param> > > <param-name>com.sun.faces.verifyObjects</param-name> > > <param-value>true</param-value> > > </context-param> > > <context-param> > > <description> > > Validate managed beans, navigation > rules and > > ensure that forms are not nested. > > </description> > > <param-name>org.apache.myfaces.VALIDATE</param-name> > > <param-value>true</param-value> > > </context-param> > > <context-param> > > <description>A class implementing the > > > > org.apache.myfaces.shared.renderkit.html.util.AddResource > > interface. It is responsible to > > place scripts and css on the right > position in > > your HTML document. > > Default: > > "org.apache.myfaces.shared.renderkit.html.util.DefaultAddResource" > > Follow the description on the MyFaces-Wiki-Performance > > page to enable > > StreamingAddResource instead of > DefaultAddResource if you > > want to > > gain performance. > > </description> > > <param-name>org.apache.myfaces.ADD_RESOURCE_CLASS</param-name> > > > > > <param-value>org.apache.myfaces.renderkit.html.util.DefaultAddResource > > </ > > param-value> > > > > > <!--param-value>org.apache.myfaces.component.html.util.StreamingAddRes > > ou > > rce</param-value--> > > </context-param> > > > > <context-param> > > <description> > > A very common problem in configuring > MyFaces-web-applications > > is that the Extensions-Filter is not configured at all > > or improperly configured. This parameter will check for a > > properly > > configured Extensions-Filter if it is needed by the web-app. > > In most cases this check will work just fine, there > might be > > cases > > where an internal forward will bypass the Extensions-Filter > > and the check > > will not work. If this is the case, you can disable > the check > > by setting > > this parameter to false. > > </description> > > > <param-name>org.apache.myfaces.CHECK_EXTENSIONS_FILTER</param-name> > > <param-value>true</param-value> > > </context-param> > > > > <context-param> > > <description> > > Change the url-pattern from the ExtensionsFilter > > Default is "/faces/myFacesExtensionResource" > > Note: The filter-mapping for ExtensionsFilter, the > url-pattern > > is > > this value + "/*", else there comes a exception > > </description> > > > <param-name>org.apache.myfaces.RESOURCE_VIRTUAL_PATH</param-name> > > <param-value>/faces/extensionResource</param-value> > > </context-param> > > <context-param> > > <param-name>org.richfaces.SKIN</param-name> > > <param-value>blueSky</param-value> > > </context-param> > > <filter> > > <display-name>RichFaces Filter</display-name> > > <filter-name>richfaces</filter-name> > > <filter-class>org.ajax4jsf.Filter</filter-class> > > </filter> > > <filter-mapping> > > <filter-name>richfaces</filter-name> > > <servlet-name>Faces Servlet</servlet-name> > > <dispatcher>REQUEST</dispatcher> > > <dispatcher>FORWARD</dispatcher> > > <dispatcher>INCLUDE</dispatcher> > > </filter-mapping> > > <!-- > > <listener> > > <listener-class> > > com.sun.faces.config.ConfigureListener > > </listener-class> > > </listener> > > --> > > <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>/faces/*</url-pattern> > > </servlet-mapping> > > <session-config> > > <session-timeout>35</session-timeout> > > </session-config> > > <mime-mapping> > > <extension>html</extension> > > <mime-type>text/html</mime-type> > > </mime-mapping> > > <mime-mapping> > > <extension>txt</extension> > > <mime-type>text/plain</mime-type> > > </mime-mapping> > > <login-config> > > <auth-method>BASIC</auth-method> > > </login-config> > > </web-app> > > --------------------- > > > > --------------------- > > <!DOCTYPE faces-config PUBLIC > > "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" > > "http://java.sun.com/dtd/web-facesconfig_1_1.dtd"> > > > > <faces-config> > > > > <application> > > <locale-config> > > <default-locale>en</default-locale> > > </locale-config> > > </application> > > > > <managed-bean> > > <managed-bean-name>ratingRequest</managed-bean-name> > > > > > <managed-bean-class>com.wamu.ais.tabpanel.RatingRequestBean</managed-b > > ea > > n-class> > > <managed-bean-scope>session</managed-bean-scope> > > </managed-bean> > > > > <lifecycle> > > > > > <phase-listener>com.wamu.ais.tabpanel.LifeCycleListener</phase-listene > > r> > > > > > <phase-listener>com.wamu.ais.tabpanel.CacheControlPhaseListener</phase > > -l > > istener> > > </lifecycle> > > > > </faces-config> > > --------------------- > > > > > > -- > Matthias Wessendorf > > further stuff: > blog: http://matthiaswessendorf.wordpress.com/ > sessions: http://www.slideshare.net/mwessendorf > mail: matzew-at-apache-dot-org >

