当前位置:文档之家› 遇到的错误总结

遇到的错误总结

1、在spring与hibernate集成时出现下列错误Exception in thread "main"org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDAO': Injection of resource dependencies failed; nested exception isorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [beans.xml]: Error setting property values; nested exception isorg.springframework.beans.NotWritablePropertyException: Invalid property 'annotatedClasses' of bean class[org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Bean property 'annotatedClasses' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?atmonAnnotationBeanPos tProcessor.postProcessPropertyValues(CommonAnnotationBeanPostP rocessor.java:306)atorg.springframework.beans.factory.support.AbstractAutowireCapa bleBeanFactory.populateBean(AbstractAutowireCapableBeanFactory .java:1106)atorg.springframework.beans.factory.support.AbstractAutowireCapa bleBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory .java:517)atorg.springframework.beans.factory.support.AbstractAutowireCapa bleBeanFactory.createBean(AbstractAutowireCapableBeanFactory.j ava:456)atorg.springframework.beans.factory.support.AbstractBeanFactory$ 1.getObject(AbstractBeanFactory.java:294)atorg.springframework.beans.factory.support.DefaultSingletonBean Registry.getSingleton(DefaultSingletonBeanRegistry.java:225) atorg.springframework.beans.factory.support.AbstractBeanFactory. doGetBean(AbstractBeanFactory.java:291)atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)atorg.springframework.beans.factory.support.DefaultListableBeanF actory.preInstantiateSingletons(DefaultListableBeanFactory.jav a:585)atorg.springframework.context.support.AbstractApplicationContext .finishBeanFactoryInitialization(AbstractApplicationContext.ja va:913)atorg.springframework.context.support.AbstractApplicationContext .refresh(AbstractApplicationContext.java:464)atorg.springframework.context.support.ClassPathXmlApplicationCon text.<init>(ClassPathXmlApplicationContext.java:139) atorg.springframework.context.support.ClassPathXmlApplicationCon text.<init>(ClassPathXmlApplicationContext.java:83)atcom.spring.test.SpringTest.main(SpringTest.java:11) Caused by:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [beans.xml]: Error setting property values; nested exception isorg.springframework.beans.NotWritablePropertyException: Invalid property 'annotatedClasses' of bean class[org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Bean property 'annotatedClasses' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?atorg.springframework.beans.factory.support.AbstractAutowireCapa bleBeanFactory.applyPropertyValues(AbstractAutowireCapableBean Factory.java:1396)atorg.springframework.beans.factory.support.AbstractAutowireCapa bleBeanFactory.populateBean(AbstractAutowireCapableBeanFactory .java:1118)atorg.springframework.beans.factory.support.AbstractAutowireCapa bleBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory .java:517)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.j ava:456)atorg.springframework.beans.factory.support.AbstractBeanFactory$ 1.getObject(AbstractBeanFactory.java:294)atorg.springframework.beans.factory.support.DefaultSingletonBean Registry.getSingleton(DefaultSingletonBeanRegistry.java:225) atorg.springframework.beans.factory.support.AbstractBeanFactory. doGetBean(AbstractBeanFactory.java:291)atorg.springframework.beans.factory.support.AbstractBeanFactory. getBean(AbstractBeanFactory.java:197)atmonAnnotationBeanPos tProcessor.autowireResource(CommonAnnotationBeanPostProcessor. java:442)atmonAnnotationBeanPos tProcessor.getResource(CommonAnnotationBeanPostProcessor.java: 416)atmonAnnotationBeanPos tProcessor$ResourceElement.getResourceToInject(CommonAnnotatio nBeanPostProcessor.java:549)atorg.springframework.beans.factory.annotation.InjectionMetadata $InjectedElement.inject(InjectionMetadata.java:159)atorg.springframework.beans.factory.annotation.InjectionMetadata .inject(InjectionMetadata.java:87)atmonAnnotationBeanPos tProcessor.postProcessPropertyValues(CommonAnnotationBeanPostP rocessor.java:303)... 13 moreCaused by:org.springframework.beans.NotWritablePropertyException: Invalid property 'annotatedClasses' of bean class[org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Bean property 'annotatedClasses' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?atorg.springframework.beans.BeanWrapperImpl.setPropertyValue(Bea nWrapperImpl.java:1064)atorg.springframework.beans.BeanWrapperImpl.setPropertyValue(Bea nWrapperImpl.java:924)atorg.springframework.beans.AbstractPropertyAccessor.setProperty Values(AbstractPropertyAccessor.java:76)atorg.springframework.beans.AbstractPropertyAccessor.setProperty Values(AbstractPropertyAccessor.java:58)atorg.springframework.beans.factory.support.AbstractAutowireCapa bleBeanFactory.applyPropertyValues(AbstractAutowireCapableBean Factory.java:1393)... 26 more原因是,在选择Session工程类时,选择的工厂类与PO映射方式不一致,Hibernate有两个Session工厂:1、LocalSessionFactoryBean:通过XX.hbm.xml来映射实体类2、AnnotationSessionFactoryBean:通过注释来映射实体类选择第一种做Session工厂时,主要通过以下方式添加PO<mapping resource="com/hibernate/News.hbm.xml"/>选择第二种做Session工厂时,主要通过以下方式添加PO<property name="annotatedClasses"><list><value>com.test.entity.TPerson</value></list>2、在往数据库中插入数据时出现以下错误:Exception in thread "main"org.hibernate.exception.GenericJDBCException: could not insert: [er]atorg.hibernate.exception.SQLStateConverter.handledNonSpecificEx ception(SQLStateConverter.java:126)atorg.hibernate.exception.SQLStateConverter.convert(SQLStateConv erter.java:114)atorg.hibernate.exception.JDBCExceptionHelper.convert(JDBCExcept ionHelper.java:66)atorg.hibernate.id.insert.AbstractReturningDelegate.performInser t(AbstractReturningDelegate.java:64)atorg.hibernate.persister.entity.AbstractEntityPersister.insert( AbstractEntityPersister.java:2176)atorg.hibernate.persister.entity.AbstractEntityPersister.in sert(AbstractEntityPersister.java:2656)atorg.hibernate.action.EntityIdentityInsertAction.execute(Entity IdentityInsertAction.java:71)atorg.hibernate.engine.ActionQueue.execute(ActionQueue.java :279)atorg.hibernate.event.def.AbstractSaveEventListener.performSaveO rReplicate(AbstractSaveEventListener.java:321)atorg.hibernate.event.def.AbstractSaveEventListener.performSave( AbstractSaveEventListener.java:204)atorg.hibernate.event.def.AbstractSaveEventListener.saveWithGene ratedId(AbstractSaveEventListener.java:130)atorg.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveW ithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.jav a:210)atorg.hibernate.event.def.DefaultSaveEventListener.saveWithGener atedOrRequestedId(DefaultSaveEventListener.java:56)atorg.hibernate.event.def.DefaultSaveOrUpdateEventListener.entit yIsTransient(DefaultSaveOrUpdateEventListener.java:195) atorg.hibernate.event.def.DefaultSaveEventListener.performSaveOr Update(DefaultSaveEventListener.java:50)atorg.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSav eOrUpdate(DefaultSaveOrUpdateEventListener.java:93)atorg.hibernate.impl.SessionImpl.fireSave(SessionImpl.java: 563)atorg.hibernate.impl.SessionImpl.save(SessionImpl.java:551) atorg.hibernate.impl.SessionImpl.save(SessionImpl.java:547) erDAOImpl.saveUser(UserDAOImpl.java: 29)erService.saveUserDAO(UserService.ja va:34)atcom.spring.test.SpringTest.main(SpringTest.java:17) Caused by: java.sql.SQLException: Field 'id' doesn't have a default valueatcom.mysql.jdbc.SQLError.createSQLException(SQLError.java: 1078)atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4190 )atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4122 )atcom.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2570)atcom.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2731) atcom.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java :2818)atcom.mysql.jdbc.PreparedStatement.executeInternal(PreparedState ment.java:2157)atcom.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStateme nt.java:2460)atcom.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStateme nt.java:2377)atcom.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStateme nt.java:2361)atmons.dbcp.DelegatingPreparedStatement.executeUpd ate(DelegatingPreparedStatement.java:105)atmons.dbcp.DelegatingPreparedStatement.executeUpd ate(DelegatingPreparedStatement.java:105)atorg.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.ex ecuteAndExtract(IdentityGenerator.java:94)atorg.hibernate.id.insert.AbstractReturningDelegate.performInser t(AbstractReturningDelegate.java:57)... 18 more原因是在代码中设置了主键自动增长,而在数据库表中并没有设置主键列自增3、在spring与hibernate集成时出现下列错误Exception in thread "main"org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService' defined in file[E:\software\Myeclipse10.6\workspace\Spring-11Spring_Hibernate_Transaction\bin\com\s pring\service\UserService.class]: Initialization of bean failed; nested exception is ng.NoClassDefFoundError:org/objectweb/asm/Typeatorg.springframework.beans.factory.support.AbstractAutowireCapa bleBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory .java:527)atorg.springframework.beans.factory.support.AbstractAutowireCapa bleBeanFactory.createBean(AbstractAutowireCapableBeanFactory.j ava:456)atorg.springframework.beans.factory.support.AbstractBeanFactory$ 1.getObject(AbstractBeanFactory.java:294)atorg.springframework.beans.factory.support.DefaultSingletonBean Registry.getSingleton(DefaultSingletonBeanRegistry.java:225) atorg.springframework.beans.factory.support.AbstractBeanFactory. doGetBean(AbstractBeanFactory.java:291)atorg.springframework.beans.factory.support.AbstractBeanFactory. getBean(AbstractBeanFactory.java:193)atorg.springframework.beans.factory.support.DefaultListableBeanF actory.preInstantiateSingletons(DefaultListableBeanFactory.jav a:585)atorg.springframework.context.support.AbstractApplicationContext .finishBeanFactoryInitialization(AbstractApplicationContext.ja va:913)atorg.springframework.context.support.AbstractApplicationContext .refresh(AbstractApplicationContext.java:464)atorg.springframework.context.support.ClassPathXmlApplicationCon text.<init>(ClassPathXmlApplicationContext.java:139) atorg.springframework.context.support.ClassPathXmlApplicationCon text.<init>(ClassPathXmlApplicationContext.java:83) atcom.spring.test.SpringTest.main(SpringTest.java:11) Caused by: ng.NoClassDefFoundError:org/objectweb/asm/Typeatnet.sf.cglib.core.TypeUtils.parseType(TypeUtils.java:180) atnet.sf.cglib.core.KeyFactory.<clinit>(KeyFactory.java:66) atnet.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69) atorg.springframework.aop.framework.Cglib2AopProxy.createEnhancer(Cglib2AopProxy.java:229)atorg.springframework.aop.framework.Cglib2AopProxy.getProxy(Cgli b2AopProxy.java:171)atorg.springframework.aop.framework.ProxyFactory.getProxy(ProxyF actory.java:112)atorg.springframework.aop.framework.autoproxy.AbstractAutoProxyC reator.createProxy(AbstractAutoProxyCreator.java:476) atorg.springframework.aop.framework.autoproxy.AbstractAutoProxyC reator.wrapIfNecessary(AbstractAutoProxyCreator.java:362) atorg.springframework.aop.framework.autoproxy.AbstractAutoProxyC reator.postProcessAfterInitialization(AbstractAutoProxyCreator .java:322)atorg.springframework.beans.factory.support.AbstractAutowireCapa bleBeanFactory.applyBeanPostProcessorsAfterInitialization(Abst ractAutowireCapableBeanFactory.java:407)atorg.springframework.beans.factory.support.AbstractAutowireCapa bleBeanFactory.initializeBean(AbstractAutowireCapableBeanFacto ry.java:1461)atorg.springframework.beans.factory.support.AbstractAutowireCapa bleBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory .java:519)... 11 moreCaused by: ng.ClassNotFoundException:org.objectweb.asm.Typeat .URLClassLoader$1.run(URLClassLoader.java:200) atjava.security.AccessController.doPrivileged(Native Method) .URLClassLoader.findClass(URLClassLoader.java:188 )ng.ClassLoader.loadClass(ClassLoader.java:307)uncher$AppClassLoader.loadClass(Launcher.java: 301)ng.ClassLoader.loadClass(ClassLoader.java:252)ng.ClassLoader.loadClassInternal(ClassLoader.java: 320)... 23 more解决方法:把Hibernate 的cglib.jar 换成spring的cglib.jar(.sf.cglib-2.2.0.jar)。

相关主题