[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-1753) Problems mixing a4j:support, @In and component binding
Alexander Smirnov (JIRA)
jira-events at lists.jboss.org
Wed Aug 1 18:25:49 EDT 2007
[ http://jira.jboss.com/jira/browse/JBSEAM-1753?page=comments#action_12370790 ]
Alexander Smirnov commented on JBSEAM-1753:
-------------------------------------------
Possible workaround :
- restore conversation-scope beans before RESTORE_VIEW phase, in the custom JSF StateManager. Ajax4Jsf have own StateManager, with a hook for save/restore any custom objects in addition to the view state.
> Problems mixing a4j:support, @In and component binding
> ------------------------------------------------------
>
> Key: JBSEAM-1753
> URL: http://jira.jboss.com/jira/browse/JBSEAM-1753
> Project: JBoss Seam
> Issue Type: Bug
> Affects Versions: 2.0.0.BETA1
> Environment: ajax4jsf 1.1.1, JBoss Seam 1.2.1, Facelets 1.1.11, MyFaces 1.1.6 nightly from 20070614, Tomcat 5.5.23
> Reporter: Daniel Wiell
> Assigned To: Alexander Smirnov
>
> Here is a simple example that shows how to reproduce this:
> <?xml version='1.0' encoding='UTF-8'?>
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:f="http://java.sun.com/jsf/core"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:a4j="https://ajax4jsf.dev.java.net/ajax">
> <head><title>Seam + ajax4jsf + binding</title></head>
> <body>
> <h:form>
> Input:
> <h:inputText binding="#{testController.input}"
> value="#{testController.value}">
> <a4j:support event="onkeyup" reRender="repeater"/>
> </h:inputText>
> <br/>
> Repeat:
> <h:outputText id="repeater" value="#{testController.value}"/>
> </h:form>
> </body>
> </html>
> import org.jboss.seam.annotations.In;
> import org.jboss.seam.annotations.Name;
> import org.jboss.seam.core.FacesMessages;
> import javax.faces.component.UIInput;
> @Name("testController")
> public class TestController {
> @In
> FacesMessages facesMessages;
> private UIInput input;
> private String value;
> public UIInput getInput() { return input; }
> public void setInput(UIInput input) { this.input = input; }
> public String getValue() { return value; }
> public void setValue(String value) { this.value = value; }
> }
> When entering something in the inputField, the following is thrown:
> 2007-06-20 08:36:33,260 ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/geo].[faces] - Servlet.service() for servlet faces threw exception
> org.jboss.seam.RequiredException: In attribute requires non-null value: testController.facesMessages
> at org.jboss.seam.Component.getValueToInject(Component.java:1919)
> at org.jboss.seam.Component.injectAttributes(Component.java:1368)
> at org.jboss.seam.Component.inject(Component.java:1195)
> at org.jboss.seam.interceptors.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
> at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
> at org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27)
> at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
> at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
> at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:151)
> at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:87)
> at TestController_$$_javassist_0.setInput(TestController_$$_javassist_0.java)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.apache.myfaces.el.PropertyResolverImpl.setProperty(PropertyResolverImpl.java:409)
> at org.apache.myfaces.el.PropertyResolverImpl.setValue(PropertyResolverImpl.java:176)
> at org.apache.myfaces.custom.security.SecurityContextPropertyResolver.setValue(SecurityContextPropertyResolver.java:136)
> at com.sun.facelets.el.LegacyELContext$LegacyELResolver.setValue(LegacyELContext.java:201)
> at com.sun.el.parser.AstValue.setValue(AstValue.java:113)
> at com.sun.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:246)
> at com.sun.facelets.el.TagValueExpression.setValue(TagValueExpression.java:93)
> at com.sun.facelets.el.LegacyValueBinding.setValue(LegacyValueBinding.java:68)
> at org.apache.myfaces.shared_impl.util.RestoreStateUtils.recursivelyHandleComponentReferencesAndSetValid(RestoreStateUtils.java:86)
> at org.apache.myfaces.shared_impl.util.RestoreStateUtils.recursivelyHandleComponentReferencesAndSetValid(RestoreStateUtils.java:57)
> at org.apache.myfaces.shared_impl.util.RestoreStateUtils.recursivelyHandleComponentReferencesAndSetValid(RestoreStateUtils.java:94)
> at org.apache.myfaces.shared_impl.util.RestoreStateUtils.recursivelyHandleComponentReferencesAndSetValid(RestoreStateUtils.java:57)
> at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:96)
> at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
> at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
> at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
> at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
> at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:53)
> at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
> at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
> at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
> at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
> at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
> at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
> at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
> at java.lang.Thread.run(Thread.java:595)
> Everything works fine if: the @In annotation is removed or the component binding is removed
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the seam-issues
mailing list