项目组要求,后台的check必须好用,所以必须写:ActionMessages errors = form.validate(mapping, request);
开始不好用的时候,自己偷懒,写成了new ,呵呵!!改成上面代码后立刻就报错了。。。错误代码如下:
[ssoMaster] DEBUG [http
-
8080
-
Processor24] SSOJ010.getActionMethod(
199
)
|
calling method: method.saveConfirm.y
[ssoMaster] ERROR [http - 8080 - Processor24] ValidatorForm.validate( 114 ) | org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest)
org.apache.commons.validator.ValidatorException: org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest)
at org.apache.commons.validator.ValidatorAction.loadValidationMethod(ValidatorAction.java: 627 )
at org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java: 557 )
at org.apache.commons.validator.Field.validateForRule(Field.java: 811 )
at org.apache.commons.validator.Field.validate(Field.java: 890 )
at org.apache.commons.validator.Form.validate(Form.java: 174 )
at org.apache.commons.validator.Validator.validate(Validator.java: 367 )
at org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java: 112 )
at jp.co.benic.usp.sso.form.BaseForm.validate(BaseForm.java: 114 )
at jp.co.benic.usp.sso.action.SSOJ010.saveConfirm(SSOJ010.java: 107 )
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.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java: 276 )
at jp.co.benic.usp.sso.action.BaseAction.execute(BaseAction.java: 256 )
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java: 421 )
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java: 226 )
at org.apache.struts.action.ActionServlet.process(ActionServlet.java: 1164 )
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java: 415 )
at javax.servlet.http.HttpServlet.service(HttpServlet.java: 709 )
at javax.servlet.http.HttpServlet.service(HttpServlet.java: 802 )
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 252 )
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 173 )
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java: 375 )
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 202 )
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 173 )
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 264 )
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java: 107 )
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java: 72 )
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 274 )
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java: 110 )
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 274 )
at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java: 81 )
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 274 )
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java: 217 )
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 274 )
at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java: 108 )
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 274 )
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java: 191 )
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 274 )
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java: 148 )
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java: 90 )
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 202 )
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 173 )
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java: 75 )
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java: 77 )
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.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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java: 80 )
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java: 684 )
at java.lang.Thread.run(Thread.java: 595 )
[ssoMaster] ERROR [http - 8080 - Processor24] ValidatorForm.validate( 114 ) | org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest)
org.apache.commons.validator.ValidatorException: org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest)
at org.apache.commons.validator.ValidatorAction.loadValidationMethod(ValidatorAction.java: 627 )
at org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java: 557 )
at org.apache.commons.validator.Field.validateForRule(Field.java: 811 )
at org.apache.commons.validator.Field.validate(Field.java: 890 )
at org.apache.commons.validator.Form.validate(Form.java: 174 )
at org.apache.commons.validator.Validator.validate(Validator.java: 367 )
at org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java: 112 )
at jp.co.benic.usp.sso.form.BaseForm.validate(BaseForm.java: 114 )
at jp.co.benic.usp.sso.action.SSOJ010.saveConfirm(SSOJ010.java: 107 )
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.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java: 276 )
at jp.co.benic.usp.sso.action.BaseAction.execute(BaseAction.java: 256 )
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java: 421 )
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java: 226 )
at org.apache.struts.action.ActionServlet.process(ActionServlet.java: 1164 )
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java: 415 )
at javax.servlet.http.HttpServlet.service(HttpServlet.java: 709 )
at javax.servlet.http.HttpServlet.service(HttpServlet.java: 802 )
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 252 )
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 173 )
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java: 375 )
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 202 )
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 173 )
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 264 )
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java: 107 )
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java: 72 )
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 274 )
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java: 110 )
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 274 )
at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java: 81 )
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 274 )
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java: 217 )
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 274 )
at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java: 108 )
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 274 )
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java: 191 )
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 274 )
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java: 148 )
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java: 90 )
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 202 )
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 173 )
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java: 75 )
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java: 77 )
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.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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java: 80 )
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java: 684 )
at java.lang.Thread.run(Thread.java: 595 )
项目组要求,后台的check必须好用,所以必须写:ActionMessages errors = form.validate(mapping, request);
开始不好用的时候,自己偷懒,写成了new ,呵呵!!改成上面代码后立刻就报错了。。。错误代码如下:
经过调查,确认是版本只见兼容性的问题:
struts1.2.4和common-validator1.1.3
struts1.2.9和common-validator1.3.0都不会有问题了!
另外注意:手写的validation.xml文件的头部代码如下:(这部分,不是关键,但不要出错)
<?
xml version="1.0" encoding="UTF-8"
?>
<! DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN" "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd" >
<! DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN" "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd" >
手写的validator-rules.xml文件的头部代码如下:
<!
DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd" >
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd" >
手写的validator-rules-custom.xml文件的头部代码如下:
<!
DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.2.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd" >
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.2.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd" >