SSH整合异常

 自己最近因为公司项目的需要,有重拾SSH  此次是以注解的形式进行开发的  因此整合后发现一些问题  特此在这里记录下来 方便日后查阅

SSH注解整合 异常        java.lang.NoSuchFieldError: INSTANCE

 

 Caused by: java.lang.NoSuchFieldError: INSTANCE

at org.hibernate.type.BasicTypeRegistry.<init>(BasicTypeRegistry.java:94)

at org.hibernate.type.TypeResolver.<init>(TypeResolver.java:59)

at org.hibernate.cfg.Configuration.<init>(Configuration.java:250)

at org.hibernate.cfg.Configuration.<init>(Configuration.java:302)

at org.hibernate.cfg.AnnotationConfiguration.<init>(AnnotationConfiguration.java:108)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148)

... 42 more

 

困扰了好久的问题终于解决了,出现这种情况一般是有重复的jar包在里面。所以才导致了这个异常

具体的包 : hibernate-annotations.jar  多了这个jar包 因为在hibernate3.jar 中已经存在了  所以直接将他删掉即可

 

 

 

 

Caused by: java.lang.ClassCastException: org.hibernate.annotations.common.reflection.java.JavaReflectionManager cannot be cast to org.hibernate.annotations.common.reflection.MetadataProviderInjector

at org.hibernate.cfg.Configuration.createReflectionManager(Configuration.java:2989)

at org.hibernate.cfg.Configuration.createReflectionManager(Configuration.java:2984)

at org.hibernate.cfg.Configuration.reset(Configuration.java:307)

at org.hibernate.cfg.Configuration.<init>(Configuration.java:298)

at org.hibernate.cfg.Configuration.<init>(Configuration.java:302)

at org.hibernate.cfg.AnnotationConfiguration.<init>(AnnotationConfiguration.java:75)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148)

... 42 more

 

错误原因  使用了  hibernate-commons-annotations.jar  将其删掉即可 

You have to use hibernate-commons-annotations version 3.2.0.Final, because 3.3.0.ga is an invalid version as stated in the README.TXT in the maven repository folder:

"Version '3.3.0.ga' was a mistake during the release process, please disregard.

There is not such version 3.3.0.ga."

Version 3.2.0.Final includes the missing MetadataProvider

 

 

解释  解释链接地址

 

 

 

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [com/zhin/ycb/spring/application-spring.xml]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property 'sessionFactory' is required

 

原因就是transactionManager要注入 sessionFactory 即可 

 

 

 

Caused by: java.lang.NoSuchFieldError: INSTANCE

at org.hibernate.type.BasicTypeRegistry.<init>(BasicTypeRegistry.java:94)

at org.hibernate.type.TypeResolver.<init>(TypeResolver.java:59)

at org.hibernate.cfg.Configuration.<init>(Configuration.java:250)

at org.hibernate.cfg.Configuration.<init>(Configuration.java:302)

at org.hibernate.cfg.AnnotationConfiguration.<init>(AnnotationConfiguration.java:108)

at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:107)

at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:130)

at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:288)

at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1541)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1479)

... 36 more

 

原因是jar包冲突了  需要将不必要的jar包删掉  冲突的jar  hibernate-annotations.jarhibernate-commons-annotations.jar 因为我用的是hibernate3.6版本的所以呢  在hibernate3.jar中已经包含了这两个jar  因此只要将它们删除即可



大家都知道框架的异常都是从最底下开始看起,

异常信息:Caused by:org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: cn.com.agricom.entity.SysPhotograph.sysBeforemovevillage in cn.com.agricom.entity.SysBeforemovevillage.sysPhotographs

上面是错误的关键部分

  错误原因:在one-to-many注解配置: @OneToMany (mappedBy = "sysBeforemovevillage"),mappedBy指向的是要关联的属性,而不是要关联的类,
        如果这样配置,hibernate则会找cn.com.agricom.entity.SysPhotograph类下面的sysBeforemovevillage属性。但实际上没有这个属性,就会报上面的异常
   方法:指定到实际关联的属性:即:@OneToMany (mappedBy = "sysBeforemovevillage")  这个异常时因为我只想做单向的关联所以才造成的,我删除了Many的一方注解 而忘记了删除One一方的外键属性所以造成这个异常


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值