FieldGroup javax.validation.ValidationException: Unable to find a default p

anybody can enlight and help why my Validation is not working.
here is my code, but always got ValidationException

topName.addValidator(new BeanValidator(TopModel.class, "topName"));
paymentPersen.addValidator(new BeanValidator(TopModel.class, "paymentPersen"));
topDuration.addValidator(new BeanValidator(TopModel.class, "paymentDue"));
BeanItem<TopModel> bitem = new BeanItem<TopModel>(modifyModel);
fieldGroup = new FieldGroup(bitem);
fieldGroup.bindMemberFields(form);

thanks

What is the actual exception, can you paste the stacktrace?

Hi Marcus, thanks for you response

the complete stacktrace as below, the Exception throw when constructor creating the UI, AddValidator, create FieldGroup, register datasource and binding as the code above.

I do hope you can elight me, thanks

Jan 09, 2015 9:32:07 AM com.vaadin.server.DefaultErrorHandler doDefault
SEVERE:
javax.validation.ValidationException: Unable to find a default provider
at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:264)
at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:111)
at com.vaadin.data.validator.BeanValidator.getJavaxBeanValidatorFactory(BeanValidator.java:162)
at com.vaadin.data.validator.BeanValidator.getJavaxBeanValidator(BeanValidator.java:177)
at com.vaadin.data.validator.BeanValidator.validate(BeanValidator.java:113)
at com.vaadin.ui.AbstractField.validate(AbstractField.java:963)
at com.vaadin.ui.AbstractField.validate(AbstractField.java:928)
at com.vaadin.ui.AbstractField.getErrorMessage(AbstractField.java:1037)
at com.vaadin.ui.AbstractComponent.beforeClientResponse(AbstractComponent.java:677)
at com.vaadin.ui.AbstractField.beforeClientResponse(AbstractField.java:1700)
at org.vaadin.risto.stepper.AbstractStepper.beforeClientResponse(AbstractStepper.java:99)
at com.vaadin.server.communication.UidlWriter.write(UidlWriter.java:99)
at com.vaadin.server.communication.UidlRequestHandler.writeUidl(UidlRequestHandler.java:151)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:99)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1406)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:305)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:198)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:176)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2440)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2429)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

If you look closer at the stacktrace, you can see that the underlying issue here is that you do not have a provider for BeanValidation on your classpath. See 8.4.6 on https://vaadin.com/book/-/page/datamodel.itembinding.html

I have validation-api-1.0.0.GA.jar and all the 7 jar from vaadin in my classpath, is there any other jar i am missing ?

Hi,

Have you also provided an implementation? Vaadin drags in the API to make GWT compilation pass, but there is no actual implementation (like hibernate validator). Thus, I’d suggest to use a real Java EE server instead of plain servlet container. In addition to bean validation that works out of the box, you’ll get a bunch of other essential tools for free too.

cheers,
matti