Integrating Shale with Ajax4JSF

2007-11-04 Thread Dominik Böhm

Hello,

I tried vainly to use Shale 1.0.4 with Ajax4JSF. When I put some ajax 
component onto my page and try to open it, I receive a NullPointerException:


javax.servlet.ServletException
   javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
   
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)

   org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
   org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
   
de.uni_muenster.easy.web.filters.SecurityFilter.doFilter(SecurityFilter.java:48)
   
org.apache.shale.application.faces.ShaleApplicationFilter.doFilter(ShaleApplicationFilter.java:267)
   
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


java.lang.NullPointerException
   
org.ajax4jsf.renderkit.AjaxRendererUtils.buildAjaxFunction(AjaxRendererUtils.java:390)
   
org.ajax4jsf.renderkit.html.AjaxFormRenderer.doEncodeBegin(AjaxFormRenderer.java:131)

   org.ajax4jsf.renderkit.RendererBase.encodeBegin(RendererBase.java:101)
   
javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)

   javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)
   javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
   
com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
   
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
   
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:243)
   
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)

   com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
   com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
   javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
   
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)

   org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
   org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
   
de.uni_muenster.easy.web.filters.SecurityFilter.doFilter(SecurityFilter.java:48)
   
org.apache.shale.application.faces.ShaleApplicationFilter.doFilter(ShaleApplicationFilter.java:267)
   
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)



The reason is that Ajax4JSF relies on the fact that either 
facesContext.getViewRoot() is an AjaxViewRoot container or that the 
ajaxForm's parent (or grand parent and so on) is an AjaxViewRoot. But 
using Shale the facesContext.getViewRoot() is an instance of 
ShaleViewRoot (the form's parent is that same ShaleViewRoot object).


As this issue is not resolved with the latest 1.1.0 SNAPSHOT I would 
like to ask you kindly to give full Ajax4JSF support.


Thank you very much
Dominik


Re: Integrating Shale with Ajax4JSF

2007-11-04 Thread Dominik Böhm

Hi Lionel,

thank you, that did the trick!

Best regards
Dominik

Lionel Port schrieb:

Try wrapping your ajax code in a a4j:region tag.

On Nov 5, 2007 3:53 AM, Dominik Böhm [EMAIL PROTECTED] wrote:

  

Hello,

I tried vainly to use Shale 1.0.4 with Ajax4JSF. When I put some ajax
component onto my page and try to open it, I receive a
NullPointerException:

javax.servlet.ServletException
   javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)

org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(
ExtensionsFilter.java:147)
   org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
   org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

de.uni_muenster.easy.web.filters.SecurityFilter.doFilter(
SecurityFilter.java:48)

org.apache.shale.application.faces.ShaleApplicationFilter.doFilter(
ShaleApplicationFilter.java:267)

org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(
ReplyHeaderFilter.java:96)

java.lang.NullPointerException

org.ajax4jsf.renderkit.AjaxRendererUtils.buildAjaxFunction(
AjaxRendererUtils.java:390)

org.ajax4jsf.renderkit.html.AjaxFormRenderer.doEncodeBegin(
AjaxFormRenderer.java:131)
   org.ajax4jsf.renderkit.RendererBase.encodeBegin(RendererBase.java:101)

javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java
:788)
   javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)
   javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)

com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java
:592)

org.ajax4jsf.application.ViewHandlerWrapper.renderView(
ViewHandlerWrapper.java:108)

org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java
:243)

com.sun.faces.lifecycle.RenderResponsePhase.execute(
RenderResponsePhase.java:106)
   com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
   com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
   javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)

org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(
ExtensionsFilter.java:147)
   org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
   org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

de.uni_muenster.easy.web.filters.SecurityFilter.doFilter(
SecurityFilter.java:48)

org.apache.shale.application.faces.ShaleApplicationFilter.doFilter(
ShaleApplicationFilter.java:267)

org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(
ReplyHeaderFilter.java:96)


The reason is that Ajax4JSF relies on the fact that either
facesContext.getViewRoot() is an AjaxViewRoot container or that the
ajaxForm's parent (or grand parent and so on) is an AjaxViewRoot. But
using Shale the facesContext.getViewRoot() is an instance of
ShaleViewRoot (the form's parent is that same ShaleViewRoot object).

As this issue is not resolved with the latest 1.1.0 SNAPSHOT I would
like to ask you kindly to give full Ajax4JSF support.

Thank you very much
Dominik




  



--
Dominik Böhm
Wilhelmstr. 17
48149 Münster

Mobile +49 160 7572316
Phone +49 251 6253968
Fax +49 251 6253969
ICQ 89501619