ssh2 jar包配置
本文中ssh指:struts2,srping2.5,hibernate3.2
struts2必须JAR包(6个):
struts2-spring-plugin-2.0.11.2.jar
xwork-2.0.5.jar
struts2-core-2.0.11.2.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
commons-logging-1.0.4.jar(与hibernate3.2必须JAR包重复,取一个既可)
hibernate3.2必须JAR包(8个):
antlr-2.7.6.jar
commons-collections-2.1.1.jar
commons-logging-1.0.4.jar
dom4j-1.6.1.jar
ehcache-1.2.3.jar
hibernate3.jar
jta.jar
log4j-1.2.11.jar
spring2.5必须JAR包(5个):
spring.jar
asm-2.2.2.jar (*)
asm-commons-2.2.2.jar (*)
asm-util-2.2.2.jar (*)
cglib-nodep-2.1_3.jar (*)
以上四个标*的jar包,hibernate,spring都有提供,但是一定要用spring下的,不然当部署到tomcat下,应用启动的时候会报如下错误:(血的教训啊)
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 net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException–>null
另外:tomcat的缓存常常会出问题,你明明更新了,可是始终启动不了,这时你可以试着重启一下tomcat。
(activation.jar;antlr-2.7.2.jar;antlr-2.7.6.jar;asm.jar;cglib-2.1.3.jar;commons-beanutils-1.6.jar;commons-chain-1.1.jar;
commons-collections-2.1.1.jar;commons-digester-1.8.jar;commons-logging-1.0.4.jar;commons-logging-api-1.1.jar;commons-validator-1.3.0.jar;dom4j-1.6.1.jar;ehcache-1.2.jar;file.txt;freemarker-2.3.8.jar;hibernate3.jar;jstl.jar;jta.jar;log4j-1.2.11.jar
log4j-1.2.15.jar;mail.jar;mysql-connector-java-5.0.4-bin.jar;mysql-connector-java-5.0.7-bin.jar;ognl-2.6.11.jar;oro-2.0.8.jar;spring.jar;standard.jar;struts-core-1.3.8.jar;struts-extras-1.3.8.jar;struts-taglib-1.3.8.jar;struts-tiles-1.3.8.jar;)
Dos命令窗口中,开始->运行->cmd打开窗口,到需要文件名的目录,用dir /B > file.txt就可以完成了。然后打开file.txt,Cut and Paste到你想放的位置。呵呵,是不是很简单呀。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yiyiyi345/archive/2009/10/04/4631610.aspx
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
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jihuanliang/archive/2008/04/22/2316223.aspx
方法一:
在使用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.3.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
方法二:
在使用Spring的AOP编程时,会用到这几个lib:
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
Hibernate使用如果lib:
asm.jarasm-attrs.jar
其中asm-2.2.2.jar与asm.jar存在类上的冲突。
使用其中之一或两者都使用,可能会出现如下错误: java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitorjava.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitorjava.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit
下面是解决方法手工编辑你的.classpath文件,比如我这个(只有部分内容)
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_CORE"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_DAO"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_AOP"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_WEB"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.hibernate.MYECLIPSE_HIBERNATE3_1_CORE"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-5.0.4-bin.jar"/>
将最后2行hibernate和mysql驱动,手工复制到springframework的lib前面。
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.hibernate.MYECLIPSE_HIBERNATE3_1_CORE"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-5.0.4-bin.jar"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_CORE"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_DAO"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_AOP"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_WEB"/>
现在你再试试启动,应该不会报错了。
我这里用了myeclipse的jar包。如果你是自定义用户库jar包,那么只要保证spring的jar包在hibernate之后加载,项目在部署的时候spring的jar包就会覆盖掉hibernate的jar包。
第二步我又加入spring框架。最后我加入的hibernage框架。利用逆向工程生成了.hbm文件和User.java文件等。可是运行服务器发布的时候就是出错。严重: action: null
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.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
我用的是MyEclipse 5.5.1 GA开发的,struts1.2+spring2.0+hibernate3.1.
怀疑是包冲突的问题,还是MyEclipse 版本的问题?
org/objectweb/asm/CodeVisitor 没有找到这个类
1.没有导入asm.jar
2.导入了多个不同版本的asm-XXXX.jar
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.3.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
1,首先加入add Spring
2,add Hibernate
3,add Struts1或者struts2
这样的话 接下来就是你配置文件事情了 。。。。
首先你配置顺序出错 的话肯定搭建不起来。。
详细的就不说了 比较繁琐 但很简单
如果要将hibernate-config.xml和applicationContext.xml整合的话,就在接下来选择spring configuration file(applicationContext.xml)
这一项。
如果选择了整合在一起的话,就在接下来点选existing spring configuration file这一项。
最后一步,就是在配置数据源的文件里把驱动的类改一下,就是把“org.apache.commons.dbcp.BasicDataSource”改成
“org.springframework.jdbc.datasource.DriverManagerDataSource”。
再把asm.jar 这个包从项目的加载路径里面删除就行了。
至于加载配置文件,就不详细的说了,方法很多,只要保证都在项目启动的时候加载上了就行啦