Exception occurs using Petclinic Example an Hibernate

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Exception occurs using Petclinic Example an Hibernate

Paddy
I tried the Petclinic example, and changed in web.xml the application context by commenting <param-value>/WEB-INF/spring/applicationContext-jdbc.xml</param-value> and uncommenting <param-value>/WEB-INF/spring/applicationContext-hibernate.xml</param-value>.

As far as I see, this should be everything to get the Petclinic working with Hibernate?
When I start the application there occurs the following error:
ERROR: org.springframework.web.context.ContextLoader - Context initialization failed
java.lang.NoClassDefFoundError: Ljavax/transaction/TransactionManager;
        at java.lang.Class.getDeclaredFields0(Native Method)
        at java.lang.Class.privateGetDeclaredFields(Class.java:2308)
        at java.lang.Class.getDeclaredFields(Class.java:1760)
        at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findPersistenceMetadata(PersistenceAnnotationBeanPostProcessor.java:373)
        at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(PersistenceAnnotationBeanPostProcessor.java:321)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:830)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:493)
        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:193)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:567)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
        at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
        at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.ClassNotFoundException: javax.transaction.TransactionManager
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
        ... 26 more


It seems like there is missing the jta.jar - I downloaded it from <http://download.java.net/maven/2/javax/transaction/jta/1.0.1B/> and added it to the build path, but without success.

Any ideas?

Thanks, best regards Paddy
Reply | Threaded
Open this post in threaded view
|

Re: Exception occurs using Petclinic Example an Hibernate

Paddy
I found a solution.
I had to comment the scope-test in pom.xml, so that it looks like
<dependency>
      <groupId>javax.transaction</groupId>
      <artifactId>com.springsource.javax.transaction</artifactId>
      <version>1.1.0</version>
      <!-- <scope>test</scope> - ->
</dependency>

Found this soloution at http://forum.springsource.org/showthread.php?104162-Spring-Petclinic-Sample-hibernate-configuration


Can maybe somebody explain, why I have to comment this line? I don't exactly understand why..

Thanks, best regards Paddy
Reply | Threaded
Open this post in threaded view
|

Re: Exception occurs using Petclinic Example an Hibernate

Emanuel
Administrator
By commenting that line, you make the dependency scope revert to the default, which is 'compile'.  I guess this worked because something was dependent on the javax.transaction/com.springsource.javax.transaction JAR, something that was needed to compile or run.

The 'test' scope means that the JAR is only used during the execution of tests, so it wasn't available during compilation, or runtime.
Reply | Threaded
Open this post in threaded view
|

Re: Exception occurs using Petclinic Example an Hibernate

Paddy
Thank you very much for your explanation :-)