title: Adding custom event listener (Hibernate) throws me org.hibernate.MappingException: Unable to instantiate specified event (save-update) listener class
body: <p>I am trying to add custom event listener for (UPDATE,INSERT) in my project. Following are my code snippets. </p>
  
  <p>hibernate.cfg.xml file entries: </p>
  
  <pre><code>&lt;event type="post-insert"&gt;
      &lt;listener class="sample.org.app.MyProjectAdaptorHibEventListener"/&gt;
  &lt;/event&gt;
  &lt;event type="save-update"&gt;
      &lt;listener class="sample.org.app.MyProjectAdaptorHibEventListener"/&gt;
  &lt;/event&gt;
  </code></pre>
  
  <p>and MyProjectAdaptorHibEventListener implementation code snippet:</p>
  
  <pre><code>public class MyProjectAdaptorHibEventListener implements PostInsertEventListener,
      PostUpdateEventListener, PostDeleteEventListener,
      SaveOrUpdateEventListener {
  
  private static final long serialVersionUID = 400000L;
  private MyProjectAdaptorHibEventListenerUtil util;
  
  public MyProjectAdaptorHibEventListener() {
      util = new MyProjectAdaptorHibEventListenerUtil();
      System.out.println("*************   MyProjectAdaptorHibEventListener loaded **************");
  }
  
  @Override
  public void onPostDelete(PostDeleteEvent event) {
      util.objectChanged("DELETE", event.getEntity());
  
  }
  
  @Override
  public void onPostUpdate(PostUpdateEvent event) {
  
      util.objectChanged("UPDATE", event.getEntity());
  
  }
  
  @Override
  public void onPostInsert(PostInsertEvent event) {
      util.objectChanged("INSERT", event.getEntity());
  
  }
  
  @Override
  public void onSaveOrUpdate(SaveOrUpdateEvent event)
          throws HibernateException {
      util.objectChanged("SAVEORUPDATE", event.getObject());
  
    }
  }
  </code></pre>
  
  <p>and my MyProjectAdaptorHibEventListenerUtil code:</p>
  
  <pre><code>public class MyProjectAdaptorHibEventListenerUtil {
  
  MyProjectAdaptorHibEventListenerUtil(){        
  }
  
  public void objectChanged(String event, Object object) {
  
      if (object instanceof AbstractDomainObject &amp;&amp; ! object.getClass().getName().startsWith("edu.wustl.common.domain.Audit")) {
          long objId = ((AbstractDomainObject) object).getId();
          System.out.println("*********** " + event + " : " + object.getClass().getName()+ ":" + objId + " , value= " + object.toString());
          insertIntoDB(event,object.getClass().getName(),objId);
      }else{
         // System.out.println("*********** " + event + " : " + object.getClass().getName());
      }
    }
  }
  </code></pre>
  
  <p>I am not sure whats wrong with my code. Please suggest me the changes. I am getting following error.</p>
  
  <p>I am using 
  Hibernate 3
  Jboss- 5.1.0 GA
  Java - 1.6</p>
  
  <p>Error log:</p>
  
  <pre><code>14:02:43,092 INFO  [STDOUT] *************   MyProjectAdaptorHibEventListener loaded **************
      14:02:43,104 INFO  [STDOUT] ERROR 14:02:43,097 (DAOFactory) - Unable to instantiate specified event (save-update) listener class: edu.wustl.bms.MyProjectAdaptorHibEventListener
      org.hibernate.MappingException: Unable to instantiate specified event (save-update) listener class: edu.wustl.bms.MyProjectAdaptorHibEventListener
          at org.hibernate.cfg.Configuration.setListeners(Configuration.java:1539)
          at org.hibernate.cfg.Configuration.parseEvent(Configuration.java:1521)
          at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1452)
          at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414)
          at org.hibernate.cfg.Configuration.configure(Configuration.java:1405)
          at edu.wustl.dao.daofactory.DAOFactory.setConfiguration(DAOFactory.java:278)
          at edu.wustl.dao.daofactory.DAOFactory.buildSessionFactory(DAOFactory.java:195)
          at edu.wustl.dao.daofactory.ApplicationDAOPropertiesParser.parseDocument(ApplicationDAOPropertiesParser.java:143)
          at edu.wustl.dao.daofactory.ApplicationDAOPropertiesParser.getDaoFactoryMap(ApplicationDAOPropertiesParser.java:67)
          at edu.wustl.dao.daofactory.DAOConfigFactory.populateDaoFactoryMap(DAOConfigFactory.java:102)
          at edu.wustl.dao.daofactory.DAOConfigFactory.&lt;init&gt;(DAOConfigFactory.java:59)
          at edu.wustl.dao.daofactory.DAOConfigFactory.&lt;clinit&gt;(DAOConfigFactory.java:49)
          at edu.wustl.simplequery.bizlogic.QueryBizLogic.getQueryObjectNameTableNameMap(QueryBizLogic.java:129)
          at edu.wustl.simplequery.bizlogic.QueryBizLogic.initializeQueryData(QueryBizLogic.java:307)
          at edu.wustl.catissuecore.util.listener.CatissueCoreServletContextListener.initCatissueParams(CatissueCoreServletContextListener.java:127)
          at edu.wustl.catissuecore.util.listener.CatissueCoreServletContextListener.contextInitialized(CatissueCoreServletContextListener.java:97)
          at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910)
          at org.apache.catalina.core.StandardContext.start(StandardContext.java:4393)
          at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310)
          at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142)
          at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)
          at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
          at org.jboss.web.deployers.WebModule.start(WebModule.java:97)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
          at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
          at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
          at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
          at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
          at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
          at $Proxy38.start(Unknown Source)
          at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
          at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
          at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
          at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
          at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
          at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
          at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
          at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
          at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
          at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
          at org.jboss.system.ServiceController.start(ServiceController.java:460)
          at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)
          at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)
          at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
          at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
          at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
          at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
          at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
          at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
          at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
          at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
          at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
          at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
          at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
          at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
          at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
          at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
          at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70)
          at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53)
          at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361)
          at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
          at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
          at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
          at org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306)
          at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271)
          at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)
          at org.jboss.Main.boot(Main.java:221)
          at org.jboss.Main$1.run(Main.java:556)
          at java.lang.Thread.run(Thread.java:662)
      Caused by: java.lang.ArrayStoreException: edu.wustl.bms.MyProjectAdaptorHibEventListener
          at org.hibernate.cfg.Configuration.setListeners(Configuration.java:1536)
          ... 84 more
      14:02:43,108 INFO  [STDOUT] ERROR 14:02:43,107 (DAOFactory) - Problem while parsing hibernate configuration file.
      edu.wustl.dao.exception.DAOException: Problem while parsing hibernate configuration file.
          at edu.wustl.dao.util.DAOUtility.getDAOException(DAOUtility.java:348)
          at edu.wustl.dao.daofactory.DAOFactory.setConfiguration(DAOFactory.java:284)
          at edu.wustl.dao.daofactory.DAOFactory.buildSessionFactory(DAOFactory.java:195)
          at edu.wustl.dao.daofactory.ApplicationDAOPropertiesParser.parseDocument(ApplicationDAOPropertiesParser.java:143)
          at edu.wustl.dao.daofactory.ApplicationDAOPropertiesParser.getDaoFactoryMap(ApplicationDAOPropertiesParser.java:67)
          at edu.wustl.dao.daofactory.DAOConfigFactory.populateDaoFactoryMap(DAOConfigFactory.java:102)
          at edu.wustl.dao.daofactory.DAOConfigFactory.&lt;init&gt;(DAOConfigFactory.java:59)
          at edu.wustl.dao.daofactory.DAOConfigFactory.&lt;clinit&gt;(DAOConfigFactory.java:49)
          at edu.wustl.simplequery.bizlogic.QueryBizLogic.getQueryObjectNameTableNameMap(QueryBizLogic.java:129)
          at edu.wustl.simplequery.bizlogic.QueryBizLogic.initializeQueryData(QueryBizLogic.java:307)
          at edu.wustl.catissuecore.util.listener.CatissueCoreServletContextListener.initCatissueParams(CatissueCoreServletContextListener.java:127)
          at edu.wustl.catissuecore.util.listener.CatissueCoreServletContextListener.contextInitialized(CatissueCoreServletContextListener.java:97)
          at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910)
          at org.apache.catalina.core.StandardContext.start(StandardContext.java:4393)
          at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310)
          at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142)
          at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)
          at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
          at org.jboss.web.deployers.WebModule.start(WebModule.java:97)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
          at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
          at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
          at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
          at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
          at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
          at $Proxy38.start(Unknown Source)
          at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
          at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
          at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
          at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
          at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
          at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
          at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
          at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
          at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
          at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
          at org.jboss.system.ServiceController.start(ServiceController.java:460)
          at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)
          at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)
          at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
          at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
          at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
          at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
          at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
          at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
          at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
          at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
          at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
          at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
          at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
          at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
          at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
          at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
          at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70)
          at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53)
          at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361)
          at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
          at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
          at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
          at org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306)
          at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271)
          at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)
          at org.jboss.Main.boot(Main.java:221)
          at org.jboss.Main$1.run(Main.java:556)
          at java.lang.Thread.run(Thread.java:662)
      Caused by: org.hibernate.MappingException: Unable to instantiate specified event (save-update) listener class: edu.wustl.bms.MyProjectAdaptorHibEventListener
          at org.hibernate.cfg.Configuration.setListeners(Configuration.java:1539)
          at org.hibernate.cfg.Configuration.parseEvent(Configuration.java:1521)
          at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1452)
          at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414)
          at org.hibernate.cfg.Configuration.configure(Configuration.java:1405)
          at edu.wustl.dao.daofactory.DAOFactory.setConfiguration(DAOFactory.java:278)
          ... 79 more
      Caused by: java.lang.ArraySt
      14:02:43,108 INFO  [STDOUT] oreException: edu.wustl.bms.MyProjectAdaptorHibEventListener
          at org.hibernate.cfg.Configuration.setListeners(Configuration.java:1536)
          ... 84 more
  </code></pre>