Weblogic81和Hibernate的集成問題
費了一天,終于搞定了Hibernate和Weblogic81的集成安裝問題。網上資料或多或少涉及到了,但都不完整、詳細。本文參考了 java視線論壇版主的文章和hibernate網站的文章撰寫了本文,希望能對各位Hibernate初學者能有所幫助。
假設你的工程是D:estprj;Destprjlib存放所有的Hibernate的lib下的jar文件;D;estprjclasses存放所有的class文件,特別包括一weblogic啟動類編寫的專用于建立hibernate的sessionfactory的class文件,還有hibernate.propties、log4j.properties、cache.ccf、oscache.properties四個配置文件;
D:eaweblogic81
1.首先第一步是修改配置weblogic啟動環境,添加hibernate的lib和class目錄到weblogic的classpath環境中,具體做法是:
找到 D:eauser_projectsdomainsmydomainstartWebLogic.cmd,添加如下紅色字體代碼到文件中:
注意到網上有的網友同樣添加jar文件后可能有空格或換行符,出現了用winrar和weblogic不能正常啟動的現象,所以最好set CLASSPATH這一行一定要一行寫完,同樣jar文件名一定要和hibernate 的jar文件一致,否者,最后weblogic啟動時候,會出現找不到什么class not found的現象。
2.利用weblogic的console配置一個jdbc pool,我采用的數據庫是sybase,以及一個datasource,datasource當然要用開頭的jdbc pool,我們假設它的jndi名稱為misdb。
3.修改hibernate的配置文件,hibernate的配置文件有兩個hibernate.propties和hibernate.cfg.xml,前一個是hibernate啟動后調用缺省初始化環境文件,后一個是可動態調整,比如說添加數據表的映射文件等等,如何添加的代碼,網上可以找的到,我這里就不重復了,兩個配置文件有一個就可以了,在初始化hibernate,將hibernate幫定到weblogic的jndi,我們可以在第四步的weblogic啟動類源代碼中說明。
hibernate.propties文件配置文件配置比較簡單,而且數據庫的參數,很多都已經用注釋寫好了。真是太cool了。
這里我們要用weblogic的數據源misdb.
修改添加如下代碼,切記,一定保證下面代碼唯一啊。
綠色代碼一定要注釋掉,用#符號
紅色代碼添加入,注意可能后面也有相應的參數配置,記住注釋掉
放心,附件會附代碼的
okay.文件配置完畢,記住要在d:estprjclasses目錄下;
4.編寫weblogic啟動類源程序,沒辦法,因為weblogic特殊,只能這樣建立hibernate 的sessionfactory,為什么,因為下面這句
the JNDI implementation in WebLogic Server does not appear to support the Referenceable interface, and exhibits some rather strange behaviour when binding Serializable objects.
代碼關鍵兩句是
網上有些文章到不是不對,有的是直接映射了對象類,比如說cat類了,有的是用
記住此時就是用hibernate.cfg.xml 文件配置。
我覺得我這兩句最簡單,直接調用了hibernate.propties的參數;代碼能,下面也有,編譯的時候一定要用ant編譯,如何配置ant,網上很多文章都有提到,我就不多說了。將WLSstartup.java放到D:hibernate21srcetsfhibernate下,然后在命令行下用ant或者運行build.bat批處理文件,編譯后的WlSstartup.class大概在D:hibernate21uild目錄下,然后copy到d:estprjclasses
okay,完畢
5.就是將WlSstartup類在weblogic的console中配置好,怎么配,robbin的文章或者weblogic的隨便那個管理配置的文章都有,我這里就不提了。
好的,所有注意事項步驟完畢,啟動你的weblogic吧。應該是正常的信息,只要你按照我的步驟做,沒問題的。
有什么問題,可以留言 我的blog或者http://gispda.blogdirver.com或者email給我 [email protected]。
假設你的工程是D:estprj;Destprjlib存放所有的Hibernate的lib下的jar文件;D;estprjclasses存放所有的class文件,特別包括一weblogic啟動類編寫的專用于建立hibernate的sessionfactory的class文件,還有hibernate.propties、log4j.properties、cache.ccf、oscache.properties四個配置文件;
D:eaweblogic81
1.首先第一步是修改配置weblogic啟動環境,添加hibernate的lib和class目錄到weblogic的classpath環境中,具體做法是:
找到 D:eauser_projectsdomainsmydomainstartWebLogic.cmd,添加如下紅色字體代碼到文件中:
| set SERVER_NAME=caserver set CLASSPATH=%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%; %JAVA_HOME%jrelibt.jar;%WL_HOME%serverlibwebservices.jar;%CLASSPATH% @rem set hibernate classpath set HIBERNATE_LIB=Destprjlib set HIBERNATE_CLASSES=Destprjclasses set CLASSPATH=%HIBERNATE_LIB%cglib-asm.jar;%HIBERNATE_LIB%cglib-full-2.0.1.jar;%HIBERNATE_LIB%ehcache-0.7.jar;%HIBERNATE_LIB%commons-beanutils.jar;%HIBERNATE_LIB%commons-logging-1.0.3.jar;%HIBERNATE_LIB%commons-collections-2.1.jar;%HIBERNATE_LIB%commons-lang.jar;%HIBERNATE_LIB%commons-logging.jar;%HIBERNATE_LIB%dom4j-full.jar;%HIBERNATE_LIB%jcs.jar;%HIBERNATE_LIB%log4j-1.2.8.jar;%HIBERNATE_LIB%odmg.jar;%HIBERNATE_LIB%dom4j-1.4.jar;%HIBERNATE_LIB%hibernate2.jar;%HIBERNATE_CLASSES%;%CLASSPATH% @REM Call WebLogic Server |
注意到網上有的網友同樣添加jar文件后可能有空格或換行符,出現了用winrar和weblogic不能正常啟動的現象,所以最好set CLASSPATH這一行一定要一行寫完,同樣jar文件名一定要和hibernate 的jar文件一致,否者,最后weblogic啟動時候,會出現找不到什么class not found的現象。
2.利用weblogic的console配置一個jdbc pool,我采用的數據庫是sybase,以及一個datasource,datasource當然要用開頭的jdbc pool,我們假設它的jndi名稱為misdb。
3.修改hibernate的配置文件,hibernate的配置文件有兩個hibernate.propties和hibernate.cfg.xml,前一個是hibernate啟動后調用缺省初始化環境文件,后一個是可動態調整,比如說添加數據表的映射文件等等,如何添加的代碼,網上可以找的到,我這里就不重復了,兩個配置文件有一個就可以了,在初始化hibernate,將hibernate幫定到weblogic的jndi,我們可以在第四步的weblogic啟動類源代碼中說明。
hibernate.propties文件配置文件配置比較簡單,而且數據庫的參數,很多都已經用注釋寫好了。真是太cool了。
這里我們要用weblogic的數據源misdb.
修改添加如下代碼,切記,一定保證下面代碼唯一啊。
| ## HypersonicSQL #hibernate.dialect net.sf.hibernate.dialect.HSQLDialect #hibernate.connection.driver_class org.hsqldb.jdbcDriver #hibernate.connection.username sa #hibernate.connection.password #hibernate.connection.url jdbc:hsqldb:hsql://localhost #hibernate.connection.url jdbc:hsqldb:test #hibernate.connection.url jdbc:hsqldb:. |
綠色代碼一定要注釋掉,用#符號
| hibernate.dialect net.sf.hibernate.dialect.SybaseDialect hibernate.connection.datasource misdb hibernate.connection.provider_class net.sf.hibernate.connection.DatasourceConnectionProvider hibernate.session_factory_name hibernate.session_factory hibernate.jdbc.fetch_size 50 hibernate.jdbc.batch_size 25 |
紅色代碼添加入,注意可能后面也有相應的參數配置,記住注釋掉
放心,附件會附代碼的
okay.文件配置完畢,記住要在d:estprjclasses目錄下;
4.編寫weblogic啟動類源程序,沒辦法,因為weblogic特殊,只能這樣建立hibernate 的sessionfactory,為什么,因為下面這句
the JNDI implementation in WebLogic Server does not appear to support the Referenceable interface, and exhibits some rather strange behaviour when binding Serializable objects.
代碼關鍵兩句是
| Configuration cfg = new Configuration(); SessionFactory factory = cfg.buildSessionFactory(); |
網上有些文章到不是不對,有的是直接映射了對象類,比如說cat類了,有的是用
| Configuration cfg = new Configuration().configure(); |
記住此時就是用hibernate.cfg.xml 文件配置。
我覺得我這兩句最簡單,直接調用了hibernate.propties的參數;代碼能,下面也有,編譯的時候一定要用ant編譯,如何配置ant,網上很多文章都有提到,我就不多說了。將WLSstartup.java放到D:hibernate21srcetsfhibernate下,然后在命令行下用ant或者運行build.bat批處理文件,編譯后的WlSstartup.class大概在D:hibernate21uild目錄下,然后copy到d:estprjclasses
okay,完畢
5.就是將WlSstartup類在weblogic的console中配置好,怎么配,robbin的文章或者weblogic的隨便那個管理配置的文章都有,我這里就不提了。
好的,所有注意事項步驟完畢,啟動你的weblogic吧。應該是正常的信息,只要你按照我的步驟做,沒問題的。
有什么問題,可以留言 我的blog或者http://gispda.blogdirver.com或者email給我 [email protected]。