错误信息总结 (更新中)

11 篇文章 0 订阅
8 篇文章 0 订阅
Error one:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
Caused by:
java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool

原因:
  在夏昕写的spring开发指南里,如果学习使用dbcp配置的时候,可能会发生这样一个错误:

连数据库连接池的时候发生了java.lang.NoClassDefFoundError:org/apache/commons/pool/impl/GenericObjectPool

      该问题的产生是由于没有引入dbcp所依赖jar文件,看看apache官方的申明:“Commons-DBCP depends at runtime on commons-pool and commons-collections”。

解决方法

在eclipse里面将这两个jar文件引入,ok,问题解决。


Error two:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mySessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)


原因:

在使用Spring的AOP编程时,会用到这几个lib:
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
Hibernate使用如果lib:
asm.jar
asm-attrs.jar
其中asm-2.2.2.jar与asm.jar存在类上的冲突!!!
使用其中之一或两者都使用,可能会出现如下错误:
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit。。。。。。

解决方法

1.去掉类路径上的关于Hibernate的3个lib
asm.jar
asm-attrs.jar
cglib-2.1.2.jar
2.加入Spring中的以下4个lib
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
cglib-nodep-2.1_3.jar

自己的一个小测试: (运行环境:apache-tomcat-5.5.15 + .MyEclipse_5.5GA_E3.2.2 )
整合ssh项目中, 在 Tomcat 部署的环境中 D:/tomcat/webapps/my/WEB-INF/lib 发生了点异常:同时有 asm.jar、asm-attrs.jar、asm-2.2.3.jar 、 asm-commons-2.2.3.jar
asm-util-2.2.3.jar、 cglib-nodep-2.1_3.jar     在启动tomcat中不会出现异常信息。(我想asm-2.2.3jar可能在一定程度上作了改进。)

当 在D:/tomcat/webapps/my/WEB-INF/lib 下加入 cglib-2.1.3.jar 会报上面的java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit错误信息。 说明cglib-2.1.3.jar与其它包发生了冲突。

Error three:

at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:408)
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError:net/sf/hibernate/Session
java.lang.NoClassDefFoundError: net/sf/hibernate/Session  at java.lang.Class.getDeclaredMethods0(Native Method)


原因 :
在写dao 时,导入包出错了!
import org.springframework.orm. hibernate.support.HibernateDaoSupport;

解决方法:注意在导包时,要仔细了!

package com.jhl.dao;

import org.springframework.orm. hibernate3.support.HibernateDaoSupport;

import com.jhl.po.User;

public class UserDao extends HibernateDaoSupport {

    public void save(User user) {

        this.getHibernateTemplate().save(user);
    }
}



Error four:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mySessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/cfg/HbmBinder$SecondPass
Caused by:
java.lang.NoClassDefFoundError: org/hibernate/cfg/HbmBinder$SecondPass


原因:hibernate3.jar和hibernate-annotations.jar)的问题。


解决方法:把hibernate-annotations.jar直接去掉就OK了!


总结:

运行环境:apache-tomcat-5.5.15 + .MyEclipse_5.5GA_E3.2.2

我觉得报以上种种的原因:主要是在spring version的选择上,最好选择 spring version 1,若选spring version 2(最容易报这样和那样的错了)
它下面的(spring1.2 AOP Libraries 、spring 1.2 Core Libraries、spring 1.2 ORM/DAO/Hibernate3Libraries、spring 1.2 Web Libraries)

struts1.2 + spring 1 + Hibernate3.1
 
 
Error five:
 
          java.lang.UnsupportedClassVersionError: Bad version number in .class file
          at java.lang.ClassLoader.defineClass1(Native Method)
          at java.lang.ClassLoader.defineClass(Unknown Source)
          at java.security.SecureClassLoader.defineClass(Unknown Source)
          at java.net.URLClassLoader.defineClass(Unknown Source)
          at java.net.URLClassLoader.access$100(Unknown Source)
          at java.net.URLClassLoader$1.run(Unknown Source)
          at java.security.AccessController.doPrivileged(Native Method)
          at java.net.URLClassLoader.findClass(Unknown Source)
          at java.lang.ClassLoader.loadClass(Unknown Source)
          at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
         at java.lang.ClassLoader.loadClass(Unknown Source)
 

 原因:jdk版本不一致引起的。
 
解决方法:

在myEclipse中改变编译器的方法

Window->Proerence->MyEclipse->Servers->Tomcat->Tomcat 6.x->JDK ,

在Tomcat JDK name中选择jdk1.6.0

因为Tomcat6.0需要jdk1.6.0以上版本支持 , 但是MyEclipse6.0的jdk版本是5.0 的, 所以会出现这个异常。

       另外还有个地方最好也要设置最新版本JDK,

Window->Proerence->Java->Installed JARs->JDK .在这里可以添加需要的Jdk。

 

若在eclipse中,windows------>Preferences---------->Java---------->compiler 在JDK Compliance这个框中选择6.0(即jdk1.6)

                                                                                                   ------>Installed JREs 也把jdk设置成jdk1.6

总结:  高版本的java程序能运行低版本的javac的编译程序,反之不成立.

 


 


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值