You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Madhav Bhargava <Ma...@infosys.com> on 2006/11/10 12:55:51 UTC

custom validator exception

Hi All,



I am trying to create a custom validator which will take values from 2
HtmlInputText components and compare whether "date1" is greater or
lesser than "date2" and then proper messages on the page.

When I run the application the following exception is thrown:



javax.faces.FacesException: UIComponent is no ValueHolder

            at
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(S
ervletExternalContextImpl.java:422)

            at
org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl.disp
atch(JspTilesViewHandlerImpl.java:233)

            at
org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl.rend
erView(JspTilesViewHandlerImpl.java:219)

            at
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384
)

            at
javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)

            at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)

            at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)

            at
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLF
ilter.java:67)

            at
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.jav
a:223)

            at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:202)

            at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)

            at
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFil
ter.java:97)

            at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:202)

            at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)

            at
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFil
ter.java:187)

            at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:202)

            at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)

            at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte
r.java:81)

            at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:202)

            at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)

            at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)

            at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:178)

            at
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipa
lValve.java:39)

            at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs
sociationValve.java:159)

            at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j
ava:59)

            at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)

            at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)

            at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:107)

            at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)

            at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
6)

            at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:744)

            at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:527)

            at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorker
Thread.java:112)

            at java.lang.Thread.run(Thread.java:595)

Caused by: javax.servlet.ServletException: UIComponent is no ValueHolder

            at
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageCont
extImpl.java:848)

            at
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContex
tImpl.java:781)

            at
org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:139)

            at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

            at
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

            at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja
va:322)

            at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)

            at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)

            at
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

            at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)

            at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)

            at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:672)

            at
org.apache.catalina.core.ApplicationDispatcher.processRequest(Applicatio
nDispatcher.java:463)

            at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDisp
atcher.java:398)

            at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispat
cher.java:301)

            at
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(S
ervletExternalContextImpl.java:416)



Any help on why this exception has occurred?



The Validator class implements Validator and StateHolder interfaces.

In the validate method I am retrieving the components with id's passed
in as attributes to the component. Once I get the components then
validations can be done.



Thanks,

madhav



**************** CAUTION - Disclaimer *****************
This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely for the use of the addressee(s). If you are not the intended recipient, please notify the sender by e-mail and delete the original message. Further, you are not to copy, disclose, or distribute this e-mail or its contents to any other person and any such actions are unlawful. This e-mail may contain viruses. Infosys has taken every reasonable precaution to minimize this risk, but is not liable for any damage you may sustain as a result of any virus in this e-mail. You should carry out your own virus checks before opening the e-mail or attachment. Infosys reserves the right to monitor and review the content of all messages sent to or from this e-mail address. Messages sent to or from this e-mail address may be stored on the Infosys e-mail system.
***INFOSYS******** End of Disclaimer ********INFOSYS***

Re: custom validator exception

Posted by Matthias Wessendorf <ma...@apache.org>.
the error says the component you nest it is no ValueHolder.
not related to the validator.

inside of tomahawk there is a similar validator. <t:validateEquals /> check
that code and *convert* the logic to your use case.
Trinidad has also two validators for dates (dateRange and dateRestriction)

Greetz,
Matthias

On 11/10/06, Madhav Bhargava <Ma...@infosys.com> wrote:
>
>  Hi All,
>
>
>
> I am trying to create a custom validator which will take values from 2
> HtmlInputText components and compare whether "date1" is greater or lesser
> than "date2" and then proper messages on the page.
>
> When I run the application the following exception is thrown:
>
>
>
> javax.faces.FacesException: UIComponent is no ValueHolder
>
>             at
> org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(
> ServletExternalContextImpl.java:422)
>
>             at
> org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl.dispatch
> (JspTilesViewHandlerImpl.java:233)
>
>             at
> org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl.renderView
> (JspTilesViewHandlerImpl.java:219)
>
>             at org.apache.myfaces.lifecycle.LifecycleImpl.render(
> LifecycleImpl.java:384)
>
>             at javax.faces.webapp.FacesServlet.service(FacesServlet.java
> :138)
>
>             at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:252)
>
>             at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:173)
>
>             at
> org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(
> BaseXMLFilter.java:67)
>
>             at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(
> BaseFilter.java:223)
>
>             at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:202)
>
>             at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:173)
>
>             at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(
> ExtensionsFilter.java:97)
>
>             at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:202)
>
>             at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:173)
>
>             at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(
> ExtensionsFilter.java:187)
>
>             at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:202)
>
>             at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:173)
>
>             at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(
> ReplyHeaderFilter.java:81)
>
>             at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:202)
>
>             at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:173)
>
>             at org.apache.catalina.core.StandardWrapperValve.invoke(
> StandardWrapperValve.java:213)
>
>             at org.apache.catalina.core.StandardContextValve.invoke(
> StandardContextValve.java:178)
>
>             at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(
> CustomPrincipalValve.java:39)
>
>             at
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(
> SecurityAssociationValve.java:159)
>
>             at org.jboss.web.tomcat.security.JaccContextValve.invoke(
> JaccContextValve.java:59)
>
>             at org.apache.catalina.core.StandardHostValve.invoke(
> StandardHostValve.java:126)
>
>             at org.apache.catalina.valves.ErrorReportValve.invoke(
> ErrorReportValve.java:105)
>
>             at org.apache.catalina.core.StandardEngineValve.invoke(
> StandardEngineValve.java:107)
>
>             at org.apache.catalina.connector.CoyoteAdapter.service(
> CoyoteAdapter.java:148)
>
>             at org.apache.coyote.http11.Http11Processor.process(
> Http11Processor.java:856)
>
>             at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection
> (Http11Protocol.java:744)
>
>             at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
> PoolTcpEndpoint.java:527)
>
>             at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(
> MasterSlaveWorkerThread.java:112)
>
>             at java.lang.Thread.run(Thread.java:595)
>
> Caused by: javax.servlet.ServletException: UIComponent is no ValueHolder
>
>             at
> org.apache.jasper.runtime.PageContextImpl.doHandlePageException(
> PageContextImpl.java:848)
>
>             at
> org.apache.jasper.runtime.PageContextImpl.handlePageException(
> PageContextImpl.java:781)
>
>             at org.apache.jsp.index_jsp._jspService(
> org.apache.jsp.index_jsp:139)
>
>             at org.apache.jasper.runtime.HttpJspBase.service(
> HttpJspBase.java:97)
>
>             at javax.servlet.http.HttpServlet.service(HttpServlet.java
> :810)
>
>             at org.apache.jasper.servlet.JspServletWrapper.service(
> JspServletWrapper.java:322)
>
>             at org.apache.jasper.servlet.JspServlet.serviceJspFile(
> JspServlet.java:314)
>
>             at org.apache.jasper.servlet.JspServlet.service(
> JspServlet.java:264)
>
>             at javax.servlet.http.HttpServlet.service(HttpServlet.java
> :810)
>
>             at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:252)
>
>             at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:173)
>
>             at org.apache.catalina.core.ApplicationDispatcher.invoke(
> ApplicationDispatcher.java:672)
>
>             at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(
> ApplicationDispatcher.java:463)
>
>             at org.apache.catalina.core.ApplicationDispatcher.doForward(
> ApplicationDispatcher.java:398)
>
>             at org.apache.catalina.core.ApplicationDispatcher.forward(
> ApplicationDispatcher.java:301)
>
>             at
> org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(
> ServletExternalContextImpl.java:416)
>
>
>
> Any help on why this exception has occurred?
>
>
>
> The Validator class implements Validator and StateHolder interfaces.
>
> In the validate method I am retrieving the components with id's passed in
> as attributes to the component. Once I get the components then validations
> can be done.
>
>
>
> Thanks,
>
> madhav
>  **************** CAUTION - Disclaimer *****************
> This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended
> solely for the use of the addressee(s). If you are not the intended
> recipient, please notify the sender by e-mail and delete the original
> message. Further, you are not to copy, disclose, or distribute this e-mail
> or its contents to any other person and any such actions are unlawful. This
> e-mail may contain viruses. Infosys has taken every reasonable precaution to
> minimize this risk, but is not liable for any damage you may sustain as a
> result of any virus in this e-mail. You should carry out your own virus
> checks before opening the e-mail or attachment. Infosys reserves the right
> to monitor and review the content of all messages sent to or from this
> e-mail address. Messages sent to or from this e-mail address may be stored
> on the Infosys e-mail system.
> ***INFOSYS******** End of Disclaimer ********INFOSYS***
>



-- 
Matthias Wessendorf
http://tinyurl.com/fmywh

further stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com