MyEclipse中搭建SSH環境

  1. 打開Myeclipse,在Package Explorer中新建Web工程,隨便取個名

    在Myeclipse中整合SSH框架之導jar包

  2. 2

    選中工程,右鍵選擇MyEclipse-->Add Struts Capabilities

    在Myeclipse中整合SSH框架之導jar包

  3. 3

    選擇Struts2.1,點下一步,選擇Struts 2 Core Libraries和Spring 2 Spring Libraries,URL-pattern選擇/*,然後finish

    在Myeclipse中整合SSH框架之導jar包

  4. 4

    類似的,選中工程,右鍵選擇MyEclipse-->Add Spring Capabilities,選中如圖這四項,點next,直到finish

    在Myeclipse中整合SSH框架之導jar包

    在Myeclipse中整合SSH框架之導jar包

  5. 5

    類似的,選中工程,右鍵選擇MyEclipse-->Add Hibernate Capabilities,選中如圖這兩項,點下一步,直到選擇數據庫這裏。

    在Myeclipse中整合SSH框架之導jar包

  6. 6

    添加Hibernate包這一步稍後會刪掉,所以數據庫先選擇系統自帶的這個就行

    在Myeclipse中整合SSH框架之導jar包

  7. 7

    最後一步,爲Session Factory類所在的包取個名字,比如com.test,然後finish

    在Myeclipse中整合SSH框架之導jar包

  8. 8

    加Hibernate包是爲了看Hibernate框架所需的jar包都要哪些,按後面的路徑找到myeclipse下jar保存在的位置,將所有的jar包複製一份(不包括cglib-2.2.jar),放到自己的文件夾下。我這裏的圖片是去掉cglib-2.2.jar後的。

    在Myeclipse中整合SSH框架之導jar包

  9. 9

    將Hinerbate 3.3 Annotation & Entity Manager ,右鍵Build Path-->remove from Build Path,同樣,將Hibernate 3.3 Core Libraries也remove掉

  10. 10

    再將Hinerbate所需的包手動添加進來,右鍵工程,Build Path-->Add External Archives,找到你將hinerbate包存放的路徑下,將包都添加進去。這時加進去的包就在Referenced Libraries下了

    在Myeclipse中整合SSH框架之導jar包

  11. 11

    最後最重要的一步,這時struts core下的antlr包還會衝突,所以打開安裝目錄

    D:/MyEclipse8.5/MyEclipse-8.5/configuration/org.eclipse.osgi/bundles 下搜索antlr-2.7.2.jar都刪除掉,然後在 D:/MyEclipse8.6/Common/plugins   搜索 *struts*.jar   會發現,出來三個選中 一個文件,,打開方式選擇壓縮包,,我的winRAR的,com.genuitec.eclipse.cross.easystruts.eclipse_8.5.0.me201007231647.jar 在lib下和data/1.3下要刪除antlr-2.7.2.jar(這個是刪除struts 1.3裏面的)

    而再打開 com.genuitec.eclipse.struts2_8.50.me201007292038.jar   data/2.1/core 下刪除antlr-2.7.2.jar (這個是刪除 struts 2.1裏面的)

    好了,這個就從struts1.3和2.1中移除了,因爲這兩個jar是common目錄下的,所以刪除了後,再運行myeclipse後, myeclipse就不能再從這兩個包中找antlr-2.7.2.jar 並加載了。如果程序部署過,別忘了刪TOMCAT下lib中的antlr-2.7.2.jar,或者整個項目全部刪除,重新部署。


    END

注意事項

  • 可以利用同樣的方法將Struts2框架所需的包和Spring框架所用的包都找到存下來,下次建工程就可以全部手動添加了,就不用以上那麼麻煩了。

  • SSH框架整合起衝突的包需要刪除的包就是Struts Core下的antlr-2.7.2.jar和hibernate aop下的cglib-2.2.jar,在複製包時切記不要複製上這兩個

注意注意:

工程發佈後執行hibernate語句會報錯:java.lang.NoSuchMethodError: antlr.collections.AST.getLine(),以前已經聽說過是個jar包衝突的問題,原來也算SSH整合時一個經典的bug(主要怪MyEclipse):Struts自帶的antlr-2.7.2.jar與Hibernate3.3自帶的antlr-2.7.6.jar發生衝突,需要刪除舊的jar包.

不過刪起來到沒那麼容易了,折騰半天最後誤刪了一個Struts2的jar包導致整個MyEclipse都崩潰了,後來只好重裝MyEclipse,:-(,看來雖然大家會遇到同樣的問題,不過解決辦法未必一樣.

雖然過程麻煩點不過總算搞好了,最後總結如下:

在MyEclipse的configuration\org.eclipse.osgi\bundles目錄下搜索antlr-2.7.2.jar,刪除所有antlr-2.7.2的jar包文件;



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