I am on my second App Engine App but am using Spring 3.0.3 this time
and it is uncharted water for me.

So I am just trying to narrow down the error and whether it is GAE,
Spring or maybe I am missing a jar. Has anybody successfully got
annotated form validation working on GAE in Spring 3.x?

Everything was going fine until I tried to use <mvc:annotation-driven /
> in spring-servlet.xml. This produces errors on the launch of
development server in debug mode. I have found other people who appear
to have similar issues (ie,
http://groups.google.com/group/google-appengine-java/browse_thread/thread/d93fd7385bf85bf7).
However other people have reported that this particular issue has been
resolved as of GAE SDK 1.3.1
http://www.openscope.net/2010/02/08/spring-mvc-3-0-and-jsr-303-aka-javax-validation/#comment-94

The solution put forward in the above link is valid for Spring 2.5 but
I am using annotated controllers and can't override the initBinder
method. Is there another solution for Spring 3.x?

The stack trace below occurs at the start of the development server in
debug.



Thanks




03/07/2010 1:46:34 AM org.springframework.web.servlet.FrameworkServlet
initServletBean
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name
'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0':
Invocation of init method failed; nested exception is
javax.validation.ValidationException: Unable to find a default
provider
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:
1412)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:
519)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:
456)
        at org.springframework.beans.factory.support.AbstractBeanFactory
$1.getObject(AbstractBeanFactory.java:291)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:
222)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:
288)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:
190)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:
574)
        at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:
895)
        at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:
425)
        at
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:
442)
        at
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:
458)
        at
org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:
339)
        at
org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:
306)
        at
org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:
127)
        at javax.servlet.GenericServlet.init(GenericServlet.java:215)
        at
org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:
440)
        at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:
263)
        at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
        at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:
685)
        at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
        at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:
1250)
        at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:
517)
        at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:
467)
        at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
        at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:
130)
        at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
        at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:
130)
        at org.mortbay.jetty.Server.doStart(Server.java:224)
        at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
        at
com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:
185)
        at
com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:
146)
        at
com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:
219)
        at com.google.appengine.tools.development.DevAppServerMain
$StartAction.apply(DevAppServerMain.java:162)
        at com.google.appengine.tools.util.Parser
$ParseResult.applyArgs(Parser.java:48)
        at
com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:
113)
        at
com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:
89)
Caused by: javax.validation.ValidationException: Unable to find a
default provider
        at javax.validation.Validation
$GenericBootstrapImpl.configure(Validation.java:264)
        at
org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.afterPropertiesSet(LocalValidatorFactoryBean.java:
161)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory
$5.run(AbstractAutowireCapableBeanFactory.java:1459)
        at java.security.AccessController.doPrivileged(Native Method)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:
1457)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:
1409)
        ... 36 more
03/07/2010 1:46:34 AM
com.google.appengine.tools.development.ApiProxyLocalImpl log
SEVERE: [1278121594297000] javax.servlet.ServletContext log:
unavailable
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name
'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0':
Invocation of init method failed; nested exception is
javax.validation.ValidationException: Unable to find a default
provider
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:
1412)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:
519)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:
456)
        at org.springframework.beans.factory.support.AbstractBeanFactory
$1.getObject(AbstractBeanFactory.java:291)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:
222)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:
288)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:
190)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:
574)
        at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:
895)
        at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:
425)
        at
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:
442)
        at
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:
458)
        at
org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:
339)
        at
org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:
306)
        at
org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:
127)
        at javax.servlet.GenericServlet.init(GenericServlet.java:215)
        at
org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:
440)
        at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:
263)
        at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
        at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:
685)
        at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
        at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:
1250)
        at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:
517)
        at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:
467)
        at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
        at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:
130)
        at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
        at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:
130)
        at org.mortbay.jetty.Server.doStart(Server.java:224)
        at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
        at
com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:
185)
        at
com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:
146)
        at
com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:
219)
        at com.google.appengine.tools.development.DevAppServerMain
$StartAction.apply(DevAppServerMain.java:162)
        at com.google.appengine.tools.util.Parser
$ParseResult.applyArgs(Parser.java:48)
        at
com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:
113)
        at
com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:
89)
Caused by: javax.validation.ValidationException: Unable to find a
default provider
        at javax.validation.Validation
$GenericBootstrapImpl.configure(Validation.java:264)
        at
org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.afterPropertiesSet(LocalValidatorFactoryBean.java:
161)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory
$5.run(AbstractAutowireCapableBeanFactory.java:1459)
        at java.security.AccessController.doPrivileged(Native Method)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:
1457)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:
1409)
        ... 36 more

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to