SSH下内嵌的java.lang.ClassCastException异常查找

当我在添加了一个pojo类并配置之后,重启tomcat出现了如下的异常:

- Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.ClassCastException
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1337)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381)
	at org.springframework.web.struts.ContextLoaderPlugIn.createWebApplicationContext(ContextLoaderPlugIn.java:354)
	at org.springframework.web.struts.ContextLoaderPlugIn.initWebApplicationContext(ContextLoaderPlugIn.java:295)
	at org.springframework.web.struts.ContextLoaderPlugIn.init(ContextLoaderPlugIn.java:225)
	at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:871)
	at org.apache.struts.action.ActionServlet.init(ActionServlet.java:359)
	at javax.servlet.GenericServlet.init(GenericServlet.java:211)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1029)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4013)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4357)
	at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3043)
	at org.apache.catalina.startup.HostConfig.restartContext(HostConfig.java:873)
	at org.apache.catalina.startup.HostConfig.checkContextLastModified(HostConfig.java:759)
	at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1085)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:327)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.StandardHost.backgroundProcess(StandardHost.java:800)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1619)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1628)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1608)
	at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.ClassCastException
	at org.hibernate.tuple.PropertyFactory.buildVersionProperty(PropertyFactory.java:84)
	at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:160)
	at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:425)
	at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
	at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1218)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:814)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:732)
	at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1368)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334)
	... 33 more
意思是说初始化[/WEB-INF/applicationContext.xml]时,出现了内嵌的异常java.lang.ClassCastException,引起的原因是 java.lang.ClassCastException。

第一步:

在/WEB-INF/applicationContext.xml文件中通过屏蔽名为sessionFactory的bean下的一个属性来屏蔽掉hibernate.cfg.xml,

这样就拒绝了hibernate配置文件的引入,初始化时就不会加载hibernate.cfg.xml所涉及的一系列文件。

结果:没有报异常。

第二步:

第一步说明查找异常的范围正确了,把异常出现的范围缩小到hibernate配置相关的范围内。

那么现在继续在hibernate.cfg.xml中屏蔽各类对应的配置文件<mapping resource="*.hbm.xml" /> ,

当屏蔽掉<mapping resource="adam/bp/workflow/entity/TaProcDef.hbm.xml" /> 时,重启tomcat之后就不报异常了。

说明TaProcDef.hbm.xml文件的配置有问题。

第三步:

那就是如何正确配置TaProcDef.hbm.xmll文件了。

最终发现问题出现在了property中配置type出现了错误,但是修改type不一定有效。建议直接取消type这一项的配置,因为hibernate会自动匹配合适的类型。

归根结底,问题是出在了TaProcDef.hbm.xml文件的配置上。待TaProcDef.hbm.xml配置好之后,问题就解决了!




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值