2017-10-26 3 views
0

Wir haben kürzlich die Struts von 2.2.1 auf 2.3.34 aktualisiert. Nach dem Upgrade funktioniert das Validierungsframework jedoch nicht. Die folgende Ausnahme erhalten.Validierungsframework funktioniert nach dem Upgrade der Struts nicht

07:04:58,974 ERROR [CommonsLogger.error] - - - Caught exception while loading file com/project/actions/RegistrationAction-register-validation.xml 
java.lang.NullPointerException 
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.loadFile(AnnotationActionValidatorManager.java:397) 
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.buildAliasValidatorConfigs(AnnotationActionValidatorManager.java:274) 
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.buildValidatorConfigs(AnnotationActionValidatorManager.java:377) 
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.getValidators(AnnotationActionValidatorManager.java:101) 
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:140) 
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:132) 
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:127) 
at com.opensymphony.xwork2.validator.ValidationInterceptor.doBeforeInvocation(ValidationInterceptor.java:222) 
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263) 
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:76) 
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229) 
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229) 
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:125) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:253) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) 
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:140) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at com.umonitor.fundstransfer6.interceptors.FtPostOnlyInterceptor.intercept(FtPostOnlyInterceptor.java:32) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) 
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) 
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:575) 
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81) 
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) 
at com.umonitor.fundstransfer6.filter.DPXPayFilter.doFilter(DPXPayFilter.java:67) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at com.umonitor.server.headers.CustomHeaderModifier.doFilter(CustomHeaderModifier.java:45) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
at java.lang.Thread.run(Thread.java:745) 

auch immer die folgende Ausnahme

07:36:37,404 WARN [CommonsLogger.warn] - - - Unable to load config class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor at interceptor - jar:file:/home/tomcat/lib/struts2-core-2.3.34.jar!/struts-default.xml:217:127 probably due to a missing jar, which might be fine if you never plan to use the validation interceptor 
07:36:37,404 ERROR [CommonsLogger.error] - - - Actual exception 
Caught Exception while registering Interceptor class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor - interceptor - jar:file:/home/tomcat/lib/struts2-core-2.3.34.jar!/struts-default.xml:217:127 
    at com.opensymphony.xwork2.factory.DefaultInterceptorFactory.buildInterceptor(DefaultInterceptorFactory.java:64) 
    at com.opensymphony.xwork2.ObjectFactory.buildInterceptor(ObjectFactory.java:209) 
    at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:70) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:1114) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:932) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:945) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:968) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:537) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:295) 
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112) 
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:264) 
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67) 
    at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:978) 
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:446) 
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:490) 
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) 
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57) 
    at com.umonitor.fundstransfer6.filter.DPXPayFilter.init(DPXPayFilter.java:40) 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:298) 
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:119) 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4076) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4730) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:802) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:583) 
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943) 
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504) 
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1385) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142) 
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1392) 
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1656) 
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1665) 
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1645) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:301) 
    at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:492) 
    at com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:530) 
    at com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:528) 
    at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:584) 
    at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:528) 
    at com.opensymphony.xwork2.ObjectFactory.injectInternalBeans(ObjectFactory.java:166) 
    at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:191) 
    at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:178) 
    at com.opensymphony.xwork2.factory.DefaultInterceptorFactory.buildInterceptor(DefaultInterceptorFactory.java:42) 
    ... 35 more 
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:132) 
    at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:51) 
    at com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:469) 
    at com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:484) 
    at com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:34) 
    at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:299) 
    ... 44 more 
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:502) 
    at com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:539) 
    at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:593) 
    at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:537) 
    at com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32) 
    at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:130) 
    ... 49 more 
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:301) 
    at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:438) 
    at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:499) 
    ... 54 more 
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:132) 
    at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:51) 
    at com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:469) 
    at com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:484) 
    at com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:34) 
    at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:299) 
    ... 56 more 
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:502) 
    at com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:539) 
    at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:593) 
    at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:537) 
    at com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32) 
    at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:130) 
    ... 61 more 
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:447) 
    at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:499) 
    ... 66 more 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:426) 
    ... 67 more 
Caused by: Connection timed out - [unknown location] 
    at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:119) 
    at com.opensymphony.xwork2.validator.DefaultValidatorFileParser.parseValidatorDefinitions(DefaultValidatorFileParser.java:119) 
    at com.opensymphony.xwork2.validator.DefaultValidatorFactory.retrieveValidatorConfiguration(DefaultValidatorFactory.java:201) 
    at com.opensymphony.xwork2.validator.DefaultValidatorFactory.parseValidators(DefaultValidatorFactory.java:190) 
    at com.opensymphony.xwork2.validator.DefaultValidatorFactory.<init>(DefaultValidatorFactory.java:61) 
    ... 72 more 
Caused by: java.net.ConnectException: Connection timed out 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:579) 
    at java.net.Socket.connect(Socket.java:528) 
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) 
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:211) 
    at sun.net.www.http.HttpClient.New(HttpClient.java:308) 
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1004) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:952) 
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:851) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1301) 
    at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source) 
    at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source) 
    at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown Source) 
    at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown Source) 
    at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source) 
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) 
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) 
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:392) 
    at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:117) 
    ... 76 more 

Die Ausnahmen auftreten, während die Tomcatbediener neu zu starten. Das Validierungs-Framework funktionierte in der alten Version einwandfrei. Bitte helfen Sie, dieses Problem zu lösen.

+0

bitte aktualisieren mit vollen Stapeln Spuren speziell 'verursacht-by's –

+0

ich die Frage mit voller Stack-Trace aktualisiert habe. –

+0

Neustart des Tomcat-Servers nur für Systemänderungen erforderlich. –

Antwort

0

versuchen diese PUBLIC ID:

<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" 
     "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> 
+0

versuchte es. funktioniert nicht –

+0

@DivyaRose, Ihre Stack-Trace zeigt versuchen, Internet zu verbinden, was bedeutet, dass es nicht finden kann "xwork-validator dtd" in JAR-Dateien was bedeutet, "PUBLIC ID" in einer oder mehreren Ihrer Validierung XML-Dateien ist falsch. –

+0

änderte meine dtds in '' und löschte die zweite Ausnahme. Aber der erste ist immer noch da und der Validierungsrahmen funktioniert immer noch nicht. Es zeigt immer noch eine Nullzeigerausnahme beim Laden der Datei –

0

die Lösung gefunden !!!

Wir verwenden classname-method-validation.xml-Dateien und eine validators.xml-Datei.

In classname-Methode-validation.xml, geben, wie unten den DOC Typ:

<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" 
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> 

und in validators.xml, verwendet, um den unten doc Typen:

<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator Definition 1.0//EN" 
"http://struts.apache.org/dtds/xwork-validator-definition-1.0.dtd"> 

Auch bei der Verwendung von Regex für die Validierung, wir verwendeten den Parameternamen als expression. Es sollte zu regexExpression geändert werden.

zB:

<field-validator type="regex" short-circuit="true"> 
    <param name="regexExpression"><![CDATA[^(?!0{9})(\d{9})$]]> 
    </param> 
    <message>${getText("ft.accounts.alert.validRoutingNumber")}</message></field-validator> 
Verwandte Themen