Problem Solved:

After rooting around in my ApplicationResources.properties file I found
a misspelling in my message name.  I would have expected the framework
to catch the error in the lookup similar to what happens in other areas
of struts when a message resource cannot be found.  Typically a message
tells you that XXX.title could not be found.  Perhaps this test is done
within the validation framework and my bypass caused an unforseen
problem.



Scott Ryan
Developer
First Bank Data Corporation
Work: (303) 235-1485
Cell:    (303 263-3044

>>> [EMAIL PROTECTED] 07/25/01 01:39PM >>>
I am using the Validation Framework within struts and I need to
perform
some validations that I cannot do using the framework.  I have created
an ActionForm
that extends ValidatorForm and in my validate method I first call
super.validate. Once the errors have been returned I then perform my
own
additonal validations
and add to the errors object returned from the super.validate.  I then
return the errors object from my validate routine.  All appears to
work
ok if I use the standard
struts errors tags to present the errors on the page.  However if I
use
the tags that come with the validator i get the following exception
only
when processing errors
that I created:

Error: 500 Location: /EnrollmentCapture.jspInternal Servlet
Error:javax.servlet.ServletException
 at
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:459)
 at
_0002fEnrollmentCapture_0002ejspEnrollmentCapture_jsp_2._jspService(_0002fEnrollmentCapture_0002ejspEnrollmentCapture_jsp_2.java:1941)
 at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:177)
 at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:318)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:391)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
 at org.apache.tomcat.core.Handler.service(Handler.java:286)
 at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
 at
org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:194)
 at
org.apache.struts.action.ActionServlet.processValidate(ActionServlet.java:2137)
 at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1564)
 at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:509)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
 at org.apache.tomcat.core.Handler.service(Handler.java:286)
 at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
 at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
 at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
 at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
 at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
 at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
 at java.lang.Thread.run(Thread.java:484)
 Root cause: java.lang.NullPointerException
 at java.util.Hashtable.put(Hashtable.java:380)
 at
org.apache.jasper.runtime.PageContextImpl.setAttribute(PageContextImpl.java:251)
 at
com.wintecinc.struts.taglib.html.ErrorsTag.doAfterBody(ErrorsTag.java:296)
 at
_0002fEnrollmentCapture_0002ejspEnrollmentCapture_jsp_2._jspService(_0002fEnrollmentCapture_0002ejspEnrollmentCapture_jsp_2.java:443)
 at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:177)
 at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:318)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:391)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
 at org.apache.tomcat.core.Handler.service(Handler.java:286)
 at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
 at
org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:194)
 at
org.apache.struts.action.ActionServlet.processValidate(ActionServlet.java:2137)
 at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1564)
 at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:509)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
 at org.apache.tomcat.core.Handler.service(Handler.java:286)
 at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
 at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
 at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
 at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
 at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
 at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
 at java.lang.Thread.run(Thread.java:484)


I am sure it is the way I am creating the additional errors but it
looks very straightforward.

Here are the tags I am putting in my JSP page:

      <validator:errorsExist>
        <bean:message key="errors.header"/>
          <validator:errors id="error">
            <li><bean:write name="error"/></li>
          </validator:errors>
     </validator:errorsExist>

Here is a sample of how I am creating my error

errors.add("password",new
ActionError("enrollmentform.error.password.maskmsg"));

Any tips would be appreciated.

Scott Ryan
Developer
First Bank Data Corporation
Work: (303) 235-1485
Cell:    (303 263-3044

Reply via email to