Upgrading POM to hibernate 4.0 GA with Axon

Getting lots of problems with hibernate upgrade in app POM, anything obvious missing or any experience Axon 1.1.2 with hibernate 4.0 and JPA 2? Any ideas?

stack below

Error creating bean with name ‘__axon-annotation-command-handler-bean-post-processor’: Cannot resolve reference to bean ‘commandBus’ while setting bean property ‘commandBus’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘commandBus’: Cannot create inner bean ‘org.axonframework.commandhandling.interceptors.SpringTransactionalInterceptor#69384051’ of type [org.axonframework.commandhandling.interceptors.SpringTransactionalInterceptor] while setting bean property ‘interceptors’ with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘org.axonframework.commandhandling.interceptors.SpringTransactionalInterceptor#69384051’ defined in class path resource [META-INF/spring/applicationContextAxon.xml]: Cannot resolve reference to bean ‘transactionManager’ while setting bean property ‘transactionManager’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘transactionManager’ defined in class path resource [META-INF/spring/applicationContextAxon.xml]: Cannot resolve reference to bean ‘entityManagerFactory’ while setting bean property ‘entityManagerFactory’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘entityManagerFactory’ defined in class path resource [META-INF/spring/applicationContextAxon.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)

at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:740)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:449)

at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:384)

at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)

at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)

at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:543)

at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)

at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)

at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)

at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)

at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:468)

at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)

at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)

at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)

at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)

at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)

at org.mortbay.jetty.Server.doStart(Server.java:222)

at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)

at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:672)

at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)

at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068)

at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811)

at com.google.gwt.dev.DevMode.main(DevMode.java:311)

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘commandBus’: Cannot create inner bean ‘org.axonframework.commandhandling.interceptors.SpringTransactionalInterceptor#69384051’ of type [org.axonframework.commandhandling.interceptors.SpringTransactionalInterceptor] while setting bean property ‘interceptors’ with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘org.axonframework.commandhandling.interceptors.SpringTransactionalInterceptor#69384051’ defined in class path resource [META-INF/spring/applicationContextAxon.xml]: Cannot resolve reference to bean ‘transactionManager’ while setting bean property ‘transactionManager’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘transactionManager’ defined in class path resource [META-INF/spring/applicationContextAxon.xml]: Cannot resolve reference to bean ‘entityManagerFactory’ while setting bean property ‘entityManagerFactory’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘entityManagerFactory’ defined in class path resource [META-INF/spring/applicationContextAxon.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:281)

Hi,

the problem isn’t in Axon, but Spring. The “entityManagerFactory” bean throws an exception in the init method. It looks like your current Spring version doesn’t like Hibernate 4.

Cheers,

Allard

Thanks Allard… realized that however was wondering if anyone had upgraded… and seen a problem… upgraded to Spring 3.1 GA and that works however Hibernate beyond 3.4 GA does not… will research further… Cheers.

… after some iterating… here are the dependencies that got upgraded POM to work for connection pools and entitymanager factory usage and get to JPA 2.0 based config with hibernate 3.6.9 and Spring 3.1… hibernate 4 newer is a different architecture and more to learn on how to get there, also just recently spring 3.1 has got special package for hibernate4 support and so still fairly new recent release.

org.hibernate

hibernate-entitymanager

3.6.9.Final

org.hibernate

hibernate-validator

4.2.0.Final

c3p0

c3p0

0.9.1

javax.validation

validation-api

1.0.0.GA

Cheers…