Note that there are some explanatory texts on larger screens.

plurals
  1. POGetting ClassNotFoundException when using Hibernate 3.6.3 and just added DefaultPreUpdateEventListener inside Tomcat
    primarykey
    data
    text
    <p>I have a problem that has been using Hibernate 3.6.0 for a very long time (or versions around here). This project has been in development since 2009 and has slowly but surely upgraded Hibernate versions. It's been using 3.6.x for some time.</p> <p>I tried upgrading to 3.6.3 to see if it fixed the problem - it didn't. My tests still run.</p> <p>I just recently created an implementation for DefaultPreUpdateEventListener. It works great when I unit test it in IntelliJ. It works when I run the tests in Maven. However, when I run my application in Tomcat, I get this stupid classpath error:</p> <pre><code>Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [trainingdividend.dao.UpdatedOnEventListener] for bean with name 'trainingdividend.dao.UpdatedOnEventListener#1342f5b' defined in file [C:\Users\egervari\IdeaProjects\trainingdividend-experiment\target\classes\applicationContext.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: org/hibernate/event/def/DefaultPreUpdateEventListener at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1253) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:433) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:270) ... 118 more Caused by: java.lang.NoClassDefFoundError: org/hibernate/event/def/DefaultPreUpdateEventListener at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at java.lang.ClassLoader.defineClass(ClassLoader.java:616) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1026) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361) at org.springframework.util.ClassUtils.forName(ClassUtils.java:257) at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408) at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1271) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1242) ... 120 more Caused by: java.lang.ClassNotFoundException: org.hibernate.event.def.DefaultPreUpdateEventListener at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361) ... 136 more </code></pre> <p>This doesn't really make sense. I have had no problems at all running Hibernate up to this point. None. Why is it that all of a sudden I am getting jar hell problems now for? I mean, this works in the unit/integration tests!</p> <p>I really hate these kinds of problems. I'd appreciate it if someone could help. I've spent 2 hours trying to find out what is up, but I see no problem. My maven dependencies look good - it is only loading 1 version of Hibernate.</p> <p>At times like this, I wish I was using Rails. I doubt they ever put up with this crap.</p> <p>Here's my spring configuration of Hibernate:</p> <pre><code>&lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt; &lt;property name="eventListeners"&gt; &lt;map&gt; &lt;entry key="pre-update"&gt; &lt;bean class="trainingdividend.dao.UpdatedOnEventListener" /&gt; &lt;/entry&gt; &lt;/map&gt; &lt;/property&gt; &lt;property name="dataSource" ref="dataSource"/&gt; &lt;property name="mappingResources"&gt; &lt;list&gt; &lt;value&gt;hibernate/coursetemplate.hbm.xml&lt;/value&gt; &lt;value&gt;hibernate/address.hbm.xml&lt;/value&gt; &lt;value&gt;hibernate/user.hbm.xml&lt;/value&gt; &lt;value&gt;hibernate/trainee.hbm.xml&lt;/value&gt; &lt;value&gt;hibernate/company.hbm.xml&lt;/value&gt; &lt;value&gt;hibernate/instructor.hbm.xml&lt;/value&gt; &lt;value&gt;hibernate/module.hbm.xml&lt;/value&gt; &lt;value&gt;hibernate/sysadmin.hbm.xml&lt;/value&gt; &lt;/list&gt; &lt;/property&gt; &lt;property name="namingStrategy"&gt; &lt;bean class="org.hibernate.cfg.ImprovedNamingStrategy"/&gt; &lt;/property&gt; &lt;property name="hibernateProperties"&gt; &lt;props&gt; &lt;prop key="javax.persistence.validation.mode"&gt;none&lt;/prop&gt; &lt;prop key="hibernate.dialect"&gt;${hibernate.dialect}&lt;/prop&gt; &lt;prop key="hibernate.hbm2ddl.auto"&gt;${hibernate.hbm2ddl.auto} &lt;/prop&gt; &lt;prop key="hibernate.generate_statistics"&gt;false&lt;/prop&gt; &lt;prop key="hibernate.show_sql"&gt;false&lt;/prop&gt; &lt;prop key="hibernate.format_sql"&gt;true&lt;/prop&gt; &lt;prop key="hibernate.cache.use_second_level_cache"&gt;false&lt;/prop&gt; &lt;prop key="hibernate.cache.provider_class"&gt; org.hibernate.cache.EhCacheProvider &lt;/prop&gt; &lt;/props&gt; &lt;/property&gt; &lt;/bean&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload