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(AjaxCont
extImpl.java:574)
        at
org.ajax4jsf.context.AjaxContextImpl.isAjaxRequest(AjaxContextImpl.java:
474)
        at
org.ajax4jsf.context.AjaxContextImpl.isAjaxRequest(AjaxContextImpl.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(HttpServletReque
stWrapper.java:216)
        at
org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHt
tpRequest.java:545)
        at
javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletReque
stWrapper.java:216)
        at
org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHt
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.StreamingAddResou
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-bea
n-class>
        <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>

   <lifecycle>
 
<phase-listener>com.wamu.ais.tabpanel.LifeCycleListener</phase-listener>
 
<phase-listener>com.wamu.ais.tabpanel.CacheControlPhaseListener</phase-l
istener>
  </lifecycle>
 
</faces-config>
---------------------

Reply via email to