title: Eclipse + GWT + spring + maven: classnotfoundexception
body: <p>I have a weird problem with my setup that I don't understand. I'm working on a maven GWT project that runs fine in a shell (i.e. mvn gwt:run is working as expected).</p>
  
  <p>However, when I try to run it in Eclipse (with m2e and gwt plugin installed), I get a classnotfoundexception. The class is an entity class and the exception occurs when the entity manager is built. I checked that the class is declared in the persistence.xml and I cannot find any exclusion in the pom.xml or the eclipse build path.</p>
  
  <p>On top of this, it works fine for someone else working on the exact same project.</p>
  
  <p>My guess is that I have a configuration error in Eclipse but I didn't tweek anything.</p>
  
  <p>Any ideas?</p>
  
  <p>Eclipse 4.2<br/>
  GWT 2.4<br/>
  Maven 3.0.3<br/>
  Spring 3.0.5</p>
  
  <pre><code>[WARN] Failed startup of context com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload@57790a{/,C:\Users\gere\Documents\netlight-workspace\NET2\target}
  org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManager' defined in ServletContext resource [/WEB-INF/database.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: netlight_db] class or package not found
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
  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:563)
  at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
  at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
  at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
  at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
  at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
  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: javax.persistence.PersistenceException: [PersistenceUnit: netlight_db] class or package not found
  at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1386)
  at org.hibernate.ejb.Ejb3Configuration.addClassesToSessionFactory(Ejb3Configuration.java:1159)
  at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1004)
  at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:689)
  at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
  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:1477)
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
  ... 30 more
  Caused by: java.lang.ClassNotFoundException: se.netlight.projectplusgui.server.dbo.BusinessArea
  at java.lang.ClassLoader.findClass(ClassLoader.java:358)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
  at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:352)
  at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337)
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:247)
  at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:170)
  at org.hibernate.ejb.Ejb3Configuration.classForName(Ejb3Configuration.java:1302)
  at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1374)
  ... 38 more
  [WARN] Nested in org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManager' defined in ServletContext resource [/WEB-INF/database.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: netlight_db] class or package not found:
  java.lang.ClassNotFoundException: se.netlight.projectplusgui.server.dbo.BusinessArea
  at java.lang.ClassLoader.findClass(ClassLoader.java:358)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
  at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:352)
  at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337)
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:247)
  at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:170)
  at org.hibernate.ejb.Ejb3Configuration.classForName(Ejb3Configuration.java:1302)
  at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1374)
  at org.hibernate.ejb.Ejb3Configuration.addClassesToSessionFactory(Ejb3Configuration.java:1159)
  at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1004)
  at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:689)
  at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
  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:1477)
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
  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:563)
  at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
  at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
  at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
  at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
  at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
  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)
  </code></pre>