我正在尝试在我的项目中为 (UPDATE,INSERT) 添加自定义事件侦听器。以下是我的代码片段。
hibernate.cfg.xml 文件条目:
<event type="post-insert">
<listener class="sample.org.app.MyProjectAdaptorHibEventListener"/>
</event>
<event type="save-update">
<listener class="sample.org.app.MyProjectAdaptorHibEventListener"/>
</event>
和 MyProjectAdaptorHibEventListener 实现代码片段:
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());
}
}
和我的 MyProjectAdaptorHibEventListenerUtil 代码:
public class MyProjectAdaptorHibEventListenerUtil {
MyProjectAdaptorHibEventListenerUtil(){
}
public void objectChanged(String event, Object object) {
if (object instanceof AbstractDomainObject && ! 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());
}
}
}
我不确定我的代码有什么问题。请建议我进行更改。我收到以下错误。
我正在使用 Hibernate 3 Jboss- 5.1.0 GA Java - 1.6
错误日志:
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.<init>(DAOConfigFactory.java:59)
at edu.wustl.dao.daofactory.DAOConfigFactory.<clinit>(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.<init>(DAOConfigFactory.java:59)
at edu.wustl.dao.daofactory.DAOConfigFactory.<clinit>(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