解決問題(八)——jsf+spring+hibernate整合(二)

 用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的還新一些。

暫時就這麼多了,如果還有什麼以後再補充。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章