现在的位置: 首页 > 综合 > 正文

解决问题(八)——jsf+spring+hibernate整合(二)

2014年03月07日 ⁄ 综合 ⁄ 共 2375字 ⁄ 字号 评论关闭

 用MyEclipse进行Web 框架的整合很方便,但是有的时候太方便也会起反作用。在一本讲框架的书上看到一句话觉得很有道理(书和作者不及得了) —— IDE工具会极大的提高高手的工作效率,但也会让入门者变得白痴。

所以就像对框架的整合进行一下研究,自己动手来搭。当然我觉得也没有必要完全抛弃IDE,合理的使用还是不错的。

我首先想研究的就是集成所需要的jar包,用MyEclipse集成,会拷贝很多jar包在lib下面,就算不是全部选项都选上,拷贝的jar包数目也不小,大小就更不用说了。以下就说说我的一点心得,考虑和测试还不周全,之后还会完善

1)数据库的Driver可定不用说了,我用的数据库是SQL Server 2000
msbase.jar
mssqlserver.jar
msutil.jar

2)jsf——jsf-1_2_05.zip
jsf-api.jar
jsf-impl.jar

下载地址:https://javaserverfaces.dev.java.net/download.html

还会用到jstl
jstl-1.2.jar
下载地址:https://maven-repository.dev.java.net/nonav/repository/

当然要想和Spring集成还需要——jsf-spring-4.0.3.zip
jsf-spring.jar
下载地址:http://sourceforge.net/project/showfiles.php?group_id=107519

如果用MyEclipse添加JSF之后,会发现有个j2ee的包,这个包在GlassFish的安装路径下面有,不过好像不需要这么麻烦。
我添加了一个servlet-api.jar肯能还会有其他的,这些在下载的spring的压缩包下的/lib/j2ee里面包含了。

3)Spring——spring-framework-2.0.7-with-dependencies.zip
下载地址:http://www.springframework.org/download
Spring的各个模块都有独立的包,也有一个整合好的spring.jar在/dist下面。如果懒得选用这个就行了。

spring带的log4j-1.2.14.jar比hibernate的带的log4j新一些,我用的是spring的。

再有就是/jakarta-commons下面的包。很多包都会被spring 和 hibernate引用到,而且这些包中的类本身还是很有用处的工具类,建议都拷贝过来.commons-attributes-compiler.jar和commons-attributes-api.jar如果没有配置junit或者ant应该用不着的。

antlr-2.7.6.jar,可以在Spring的包中找到,如果没有会有以下错误:

java.lang.NoClassDefFoundError: antlr/ANTLRException

最后还要有cglib-nodep-2.1.3.jar要不会有类似下面的错误:

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: net/sf/cglib/proxy/CallbackFilter
Caused by:
java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter

4)hibernate——hibernate-3.2.5.ga.zip
下载地址:http://www.hibernate.org/6.html
在压缩包的根目录下面找到hibernate3.jar,hibernate的全部功能应该就有了。

因为hibernate的配置文件使用dom解析的,所以还要有dom4j.jar,这个是必须的.

hibernate里面还引用到了jta.jar里面的类,所以还要包扩这个包,要不会有下面的错:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
Caused by:
java.lang.NoClassDefFoundError: javax/transaction/TransactionManager

在hibernate的说明文件中,认为如果没有设置其他的具有缓存功能的包,那要求有ehcache-1.2.3.jar

还有两个必须的包commons-collections-2.1.1.jar 和commons-logging-1.0.4.jar,因为在spring的/jakarta-commons中都包括了,就不用在拷贝一次,而且spring的还新一些。

暂时就这么多了,如果还有什么以后再补充。

抱歉!评论已关闭.