You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by "Karr, David" <da...@wamu.net> on 2008/01/24 06:18:38 UTC
Still trying to move simple RichFaces 3.1.3 app from BEA JSF 1.1 to MyFaces 1.1.5 (Tomcat)
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>
---------------------
RE: Still trying to move simple RichFaces 3.1.3 app from BEA JSF 1.1 to MyFaces 1.1.5 (Tomcat)
Posted by "Karr, David" <da...@wamu.net>.
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: mwessendorf@gmail.com [mailto:mwessendorf@gmail.com] 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 <da...@wamu.net> 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
>
Re: Still trying to move simple RichFaces 3.1.3 app from BEA JSF 1.1 to MyFaces 1.1.5 (Tomcat)
Posted by Matthias Wessendorf <ma...@apache.org>.
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 <da...@wamu.net> 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(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>
> ---------------------
>
--
Matthias Wessendorf
further stuff:
blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
mail: matzew-at-apache-dot-org