title: Spring, JPA, Hibernate, Jetty 7 Integration
body: <p>Have anyone successfully run any spring and JPA application in jetty 7? I am getting following exception. This application throws no error in jetty 6.</p>
  
  <pre>INFO [main] org.eclipse.jetty.util.log - Logging to org.slf4j.impl.Log4jLoggerAdapter(org.eclipse.jetty.util.log) via org.eclipse.jetty.util.log.Slf4jLog
  INFO [main] org.eclipse.jetty.util.log - jetty-7.1.2.v20100523
  INFO [main] org.eclipse.jetty.util.log - Deployment monitor G:\_Java\_Jetty\jetty-distribution-7.1.2.v20100523\contexts at interval 5
  INFO [main] org.eclipse.jetty.util.log - Deployment monitor G:\_Java\_Jetty\jetty-distribution-7.1.2.v20100523\webapps at interval 5
  INFO [main] org.eclipse.jetty.util.log - Deployable added: G:\_Java\_Jetty\jetty-distribution-7.1.2.v20100523\webapps\gwtrpc-spring.war
  INFO [main] org.eclipse.jetty.util.log - Copying WEB-INF/lib jar:file:/G:/_Java/_Jetty/jetty-distribution-7.1.2.v20100523/webapps/gwtrpc-spring.war!/WEB-INF/lib/ to C:\Documents and Settings\Jewel2\Local Settings\Temp\Jetty_0_0_0_0_8080_gwtrpc.spring.war__gwtrpc.spring__az1wdj\webinf\WEB-INF\lib
  INFO [main] org.eclipse.jetty.util.log - Copying WEB-INF/classes from jar:file:/G:/_Java/_Jetty/jetty-distribution-7.1.2.v20100523/webapps/gwtrpc-spring.war!/WEB-INF/classes/ to C:\Documents and Settings\Jewel2\Local Settings\Temp\Jetty_0_0_0_0_8080_gwtrpc.spring.war__gwtrpc.spring__az1wdj\webinf\WEB-INF\classes
  INFO [main] /gwtrpc-spring - Initializing Spring root WebApplicationContext
  INFO [main] org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization started
  INFO [main] org.springframework.web.context.support.XmlWebApplicationContext - Refreshing Root WebApplicationContext: startup date [Thu Jun 10 00:13:32 GMT+06:00 2010]; root of context hierarchy
  INFO [main] org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
  INFO [main] org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@467991: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,greetingServiceImpl,testService,testService2,taskExecutor,dataSource,entityManagerFactory,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,transactionManager,org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor#0]; root of factory hierarchy
  INFO [main] org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService  'taskExecutor'
  INFO [main] org.springframework.jdbc.datasource.DriverManagerDataSource - Loaded JDBC driver: com.mysql.jdbc.Driver
  INFO [main] org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean - Building JPA container EntityManagerFactory for persistence unit 'gwtrpc-spring-data-source'
  INFO [main] org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.4.0.GA
  INFO [main] org.hibernate.cfg.Environment - Hibernate 3.3.1.GA
  INFO [main] org.hibernate.cfg.Environment - hibernate.properties not found
  INFO [main] org.hibernate.cfg.Environment - Bytecode provider name : javassist
  INFO [main] org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
  INFO [main] org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.1.0.GA
  INFO [main] org.hibernate.ejb.Version - Hibernate EntityManager 3.4.0.GA
  INFO [main] org.hibernate.ejb.Ejb3Configuration - Processing PersistenceUnitInfo [
   name: gwtrpc-spring-data-source
   ...]
  INFO [main] org.springframework.beans.factory.support.DefaultListableBeanFactory - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@467991: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,greetingServiceImpl,testService,testService2,taskExecutor,dataSource,entityManagerFactory,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,transactionManager,org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor#0]; root of factory hierarchy
  INFO [main] org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor - Shutting down ExecutorService 'taskExecutor'
  ERROR [main] org.springframework.web.context.ContextLoader - Context initialization failed
  org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: gwtrpc-spring-data-source] class or package not found
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1403)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:545)
   at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:272)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:196)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
   at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:636)
   at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:188)
   at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:995)
   at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:579)
   at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:381)
   at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
   at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36)
   at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:182)
   at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:497)
   at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:135)
   at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:61)
   at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:436)
   at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:349)
   at org.eclipse.jetty.util.Scanner.scan(Scanner.java:306)
   at org.eclipse.jetty.util.Scanner.start(Scanner.java:242)
   at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:136)
   at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
   at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:562)
   at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:212)
   at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
   at org.eclipse.jetty.server.Server.doStart(Server.java:209)
   at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
   at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1018)
   at java.security.AccessController.doPrivileged(Native Method)
   at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:983)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.eclipse.jetty.start.Main.invokeMain(Main.java:447)
   at org.eclipse.jetty.start.Main.start(Main.java:605)
   at org.eclipse.jetty.start.Main.parseCommandLine(Main.java:238)
   at org.eclipse.jetty.start.Main.main(Main.java:77)
  Caused by: javax.persistence.PersistenceException: [PersistenceUnit: gwtrpc-spring-data-source] class or package not found
   at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1093)
   at org.hibernate.ejb.Ejb3Configuration.addClassesToSessionFactory(Ejb3Configuration.java:871)
   at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:758)
   at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:425)
   at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:131)
   at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225)
   at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:308)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1400)
   ... 45 more
  Caused by: java.lang.ClassNotFoundException: WEB-INF.classes.org.gwtrpcspring.example.server.Person
   at java.net.URLClassLoader$1.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClassInternal(Unknown Source)
   at java.lang.Class.forName0(Native Method)
   at java.lang.Class.forName(Unknown Source)
   at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:135)
   at org.hibernate.ejb.Ejb3Configuration.classForName(Ejb3Configuration.java:1009)
   at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1081)
   ... 53 more
  WARN [main] org.eclipse.jetty.util.log - Failed startup of context WebAppContext@149f041@149f041/gwtrpc-spring,file:/C:/Documents and Settings/Jewel2/Local Settings/Temp/Jetty_0_0_0_0_8080_gwtrpc.spring.war__gwtrpc.spring__az1wdj/webinf/;jar:file:/G:/_Java/_Jetty/jetty-distribution-7.1.2.v20100523/webapps/gwtrpc-spring.war!/;,G:\_Java\_Jetty\jetty-distribution-7.1.2.v20100523\webapps\gwtrpc-spring.war
  org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: gwtrpc-spring-data-source] class or package not found
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1403)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:545)
   at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:272)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:196)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
   at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:636)
   at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:188)
   at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:995)
   at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:579)
   at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:381)
   at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
   at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36)
   at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:182)
   at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:497)
   at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:135)
   at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:61)
   at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:436)
   at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:349)
   at org.eclipse.jetty.util.Scanner.scan(Scanner.java:306)
   at org.eclipse.jetty.util.Scanner.start(Scanner.java:242)
   at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:136)
   at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
   at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:562)
   at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:212)
   at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
   at org.eclipse.jetty.server.Server.doStart(Server.java:209)
   at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
   at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1018)
   at java.security.AccessController.doPrivileged(Native Method)
   at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:983)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.eclipse.jetty.start.Main.invokeMain(Main.java:447)
   at org.eclipse.jetty.start.Main.start(Main.java:605)
   at org.eclipse.jetty.start.Main.parseCommandLine(Main.java:238)
   at org.eclipse.jetty.start.Main.main(Main.java:77)
  Caused by: javax.persistence.PersistenceException: [PersistenceUnit: gwtrpc-spring-data-source] class or package not found
   at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1093)
   at org.hibernate.ejb.Ejb3Configuration.addClassesToSessionFactory(Ejb3Configuration.java:871)
   at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:758)
   at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:425)
   at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:131)
   at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225)
   at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:308)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1400)
   ... 45 more
  Caused by: java.lang.ClassNotFoundException: WEB-INF.classes.org.gwtrpcspring.example.server.Person
   at java.net.URLClassLoader$1.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClassInternal(Unknown Source)
   at java.lang.Class.forName0(Native Method)
   at java.lang.Class.forName(Unknown Source)
   at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:135)
   at org.hibernate.ejb.Ejb3Configuration.classForName(Ejb3Configuration.java:1009)
   at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1081)
   ... 53 more
  INFO [main] org.eclipse.jetty.util.log - Started SelectChannelConnector@0.0.0.0:8080
  </pre>
  
  <p>And this is my applicationContext.xml file</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;beans&gt;
  
   &lt;context:annotation-config /&gt;
  
   &lt;context:component-scan base-package="org.gwtrpcspring.example.server" /&gt;
  
   &lt;bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"&gt;
    &lt;property name="corePoolSize" value="5" /&gt;
    &lt;property name="maxPoolSize" value="10" /&gt;
    &lt;property name="queueCapacity" value="25" /&gt;
   &lt;/bean&gt;
  
   &lt;bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"&gt;
    &lt;property name="driverClassName" value="com.mysql.jdbc.Driver" /&gt;
    &lt;property name="url" value="jdbc:mysql://localhost:3306/test" /&gt;
    &lt;property name="username" value="jewel" /&gt;
    &lt;property name="password" value="jewel" /&gt;
   &lt;/bean&gt;
  
   &lt;bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"&gt;
    &lt;property name="dataSource" ref="dataSource" /&gt;
  
    &lt;property name="jpaVendorAdapter"&gt;
     &lt;bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"&gt;
      &lt;property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" /&gt;
      &lt;!-- 
      &lt;property name="databasePlatform" value="org.hibernate.dialect.HSQLDialect" /&gt;
       --&gt;
  
      &lt;property name="showSql" value="false" /&gt;
      &lt;property name="generateDdl" value="true" /&gt;
     &lt;/bean&gt;
    &lt;/property&gt;
   &lt;/bean&gt;
  
   &lt;tx:annotation-driven /&gt;
  
   &lt;bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"&gt;
    &lt;property name="entityManagerFactory" ref="entityManagerFactory" /&gt;
   &lt;/bean&gt;
  
   &lt;bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /&gt;
  
  
  &lt;/beans&gt;
  </code></pre>