添加hibernate多对多配置后启动tomcat报错
来源:互联网 发布:软件主题下载 编辑:程序博客网 时间:2024/05/21 11:32
今天,在新增了PrivilegeEntity(权限)和其对应的hibernate配置文件之后,在其配置文件中配置了对应的对于RoleEntity(角色)的多对多关系之后,启动Tomcat之后报了如下错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.zhi.service.impl.MenuServiceImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.zhi.dao.impl.MenuDAOImpl' defined in file [D:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\CRM\WEB-INF\classes\com\crm\dao\impl\MenuDAOImpl.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [D:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\CRM\WEB-INF\classes\beans.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:300)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1074)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
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.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1075)
at org.directwebremoting.spring.SpringCreator.getInstance(SpringCreator.java:144)
at org.directwebremoting.spring.SpringCreator.getType(SpringCreator.java:106)
at org.directwebremoting.impl.DefaultCreatorManager.addCreator(DefaultCreatorManager.java:118)
at org.directwebremoting.impl.DefaultCreatorManager.addCreator(DefaultCreatorManager.java:100)
at org.directwebremoting.impl.DwrXmlConfigurator.loadCreate(DwrXmlConfigurator.java:274)
at org.directwebremoting.impl.DwrXmlConfigurator.loadAllows(DwrXmlConfigurator.java:224)
at org.directwebremoting.impl.DwrXmlConfigurator.configure(DwrXmlConfigurator.java:170)
at org.directwebremoting.impl.ContainerUtil.configureFromDefaultDwrXml(ContainerUtil.java:262)
at org.directwebremoting.impl.ContainerUtil.configureContainerFully(ContainerUtil.java:419)
at org.directwebremoting.servlet.DwrServlet.init(DwrServlet.java:79)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5001)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5289)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1362)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1450)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:295)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1338)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1496)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1506)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1485)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.zhi.dao.impl.MenuDAOImpl' defined in file [D:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\CRM\WEB-INF\classes\com\crm\dao\impl\MenuDAOImpl.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [D:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\CRM\WEB-INF\classes\beans.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
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:194)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:435)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:409)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:541)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:147)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:297)
... 34 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [D:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\CRM\WEB-INF\classes\beans.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException
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.AbstractAutowireCapableBeanFactory.autowireByName(AbstractAutowireCapableBeanFactory.java:1104)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1054)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
... 45 more
Caused by: java.lang.NullPointerException
at org.hibernate.mapping.Table$ForeignKeyKey.equals(Table.java:96)
at java.util.HashMap.get(HashMap.java:322)
at org.hibernate.mapping.Table.createForeignKey(Table.java:592)
at org.hibernate.mapping.Table.createForeignKey(Table.java:585)
at org.hibernate.mapping.SimpleValue.createForeignKeyOfEntity(SimpleValue.java:128)
at org.hibernate.mapping.Collection.createForeignKeys(Collection.java:418)
at org.hibernate.mapping.Collection.createAllKeys(Collection.java:426)
at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:66)
at org.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java:1716)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1423)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1375)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:717)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
... 54 more
纳闷了半天,之前Menu相关的配置都没有错误,今天修改也没有碰MenuEntity的配置文件啊,怎么会出现注入失败的错误呢,最后耐下心来看了一下错误,在错误的错误信息我们可以看到
Caused by: java.lang.NullPointerException
at org.hibernate.mapping.Table$ForeignKeyKey.equals(Table.java:96)
at java.util.HashMap.get(HashMap.java:322)
这个错误,错误显示的是外键的错误,所以我回过头去看配置文件,然后发现真的是PrivilegeEntity.hbm.xml的多对多配置出错,我写成了如下形式:
<set name="roleSet" lazy="false" cascade="all" table="role_privilege">
<key column="privilegeId" />
<many-to-many column="roleId" />
</set>
,发现是忘了配置class=“”,他找不到对应的类,所以出错,应该配成 class="RoleEntity" 。下次要小心一点了
总结:看错误信息一般是最后的错误信息才是最有用的,前面说的什么注入失败都是由后面引起的,不要受其影响,在这上面纠结,找错误
- 添加hibernate多对多配置后启动tomcat报错
- spring和hibernate集成成功后,集成struts2的后,启动tomcat报错,求解
- hibernate多对一映射报错
- Tomcat启动一闪而过,报错,配置JDK
- hibernate配置多对一的关系的时候,从多方删除信息报错
- myeclipse 9.0 添加struts后tomcat报错
- eclipse配置tomcat后,启动tomcat访问http://localhost:8080报404
- 配置好log4j后启动tomcat后JUnit4报空指针异常
- 启动tomcat后访问页面http://localhost:8080/报错
- tomcat正常启动后http://localhost:8080/报错404
- tomcat启动后,输入localhost:8080报错404
- tomcat正常启动后http://localhost:8080/报错404
- tomcat正常启动后http://localhost:8080/报错404
- maven项目update project后tomcat启动报错
- tomcat正常启动后http://localhost:8080/报错404
- 在struts.xml文件中添加后启动tomcat报Exception starting filter struts2异常
- 启动Tomcat报错
- tomcat 启动报错
- HTML5开发必备:游戏开发资源合集
- ActiveMQ5.0实战一: 安装配置ActiveMQ5.0
- Cocos2d-iphone 开发之(3) 了解Cocos2d核心类
- iOS 使用 Core Plot 绘制统计图表入门
- 【原创】MFC中文件选择对话框
- 添加hibernate多对多配置后启动tomcat报错
- 【解析为何空文件夹却显示有容量】
- Chromium 怎样显示网页
- HDU1044 Collect More Jewels
- linux的软件安装
- iPhone开发之几种视图切换
- Drools规则引擎的使用总结
- C#中collection,list,map的使用
- 【解决快捷方式无法使用问题】