• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    weblogic中將SessionFactory配置為JNDI

    發布: 2007-6-22 07:38 | 作者:   | 來源:   | 查看: 17次 | 進入軟件測試論壇討論

    領測軟件測試網

       
      為了更方便的在編寫程序的過程中運用hibernate并且在多個應用程序中共享SessionFactory,將生成的SessionFactory配置為jndi并且在服務器啟動的時候將其配置為自動運行是個不錯的方法,這樣在程序中就可以通過“查找”的方式直接獲取factory的引用,步驟如下:

      
      1. 如果單單是為了將SessionFactory配置為JNDI,方法很簡單,只要在hibernate.cfg.xml文件中配置一下要綁定到jndi的名字即可,格式如下:
      

      <hibernate-configuration>
      <session-factory name="hibernate.session_factory">
      <property name="connection.datasource">jdbc.name</property>
      ……………………
      /session-factory>
      </hibernate-configuration>
      
      其中name="hibernate.session_factory"指定要綁定的JNDI名字為hibernate/session_factory,這樣在hibernate初始化SessionFactory的時候就會將其綁定在jndi服務上,之后我們就可以在程序中通過JNDI查找來獲取SessionFactory的引用,如:
      
      Context context=new InitialContext();
      SessionFactory sf = (SessionFactory)context.lookup("hibernate/session_factory");
      
      2. 上述中通過JNDI查找SessionFactory的引用的前提是在查找之前必須已經綁定,也就是hibernate已經初始化過SessionFactory,為了保證此條件,比較好的方法就是在服務器啟動的時候自動運行初始化SessionFactory的代碼并將其綁定至JNDI,可以通過以下兩種方式實現服務器啟動的時候自動運行代碼:
      

      ? 對于weblogic來說,我們可以通過weblogic.common.T3StartupDef接口來實現一個StartUp類,然后在weblogic控制臺中將其配置為自動運行,步驟如下:
      
      1) 編寫StartUp類:
      
      package com.starup
      public class HibernateInitStartUp implements   weblogic.common.T3StartupDef{
      public void setServices(T3ServicesDef t3ServicesDef) {
      }
      public String startup(String string, Hashtable hashtable) throws Exception {
      Configuration conf = new Configuration().configure();
      SessionFactory sf = conf.buildSessionFactory();
      return "SessionFactory init complete and bound to JNDI successful";
      }
      }
      
      2) 編譯該類
      
      3) 修改startWebLogic.cmd文件,將上述類中用到的類文件和hibernate關聯的包增加到其啟動時的classpath環境變量中,格式如下:
      
      set HIBERNATE_LIB=D:\work \WebRoot\WEB-INF\lib
      set HIBERNATE_CLASSES=D:\work \WebRoot\WEB-INF\classes
      在set CLASSPATH 之后加入: %HIBERNATE_LIB%\cglib-full-2.0.2.jar;%HIBERNATE_LIB%\commons-beanutils.jar;%HIBERNATE_LIB%\commons-collections.jar;%HIBERNATE_LIB%\commons-lang.jar;%HIBERNATE_LIB%\commons-logging.jar;%HIBERNATE_LIB%\dom4j-1.4.jar;%HIBERNATE_LIB%\hibernate2.jar;%HIBERNATE_LIB%\jcs.jar;%HIBERNATE_LIB%\odmg.jar;%HIBERNATE_CLASSES%
      
      在加入以上文件的時候要根據hibernate的版本而定,例如我用的是2.0,如果其他的版本上述的文件名可能有些不同,此時一定要檢查好
      
      4) 打開weblogic控制臺,在左側的樹中點擊StartUp & Shutdown,然后在右邊的主頁面中點擊“Configure a new Startup Class...”配置一個自動運行類,在Name框里面隨便填寫,在ClassName里面填寫你編寫的StartUp類:com.starup. HibernateInitStartUp,然后點擊apply,在接下來的Target選項中選擇myserver(根據你的情況而定),點擊apply按鈕。
      
      5) 重新啟動weblogic,可以看到hibernate初始化的一些信息和提示將SessionFactory綁定至JNDI的提示信息
      
      6) 在weblogic控制臺中的jndi樹中可以看到綁定的情況(點擊mydomain—server—myserver,然后點擊右邊頁面最下方的“View JNDI tree”就可以看到其信息)
      
      ? 通過實現ServletContextListener接口在系統初始化一個應用程序的時候自動運行,步驟如下:
      
      1) 編寫類,實現ServletContextListener接口,如下:
      
      package com.starup;
      
      import.net.sf.hibernate.SessionFactory;
      import net.sf.hibernate.cfg.Configuration;
      
      import javax.servlet.ServletContextEvent;
      import javax.servlet.ServletContextListener;
      public class HibernateInitStartUp implements ServletContextListener {
      public void contextDestroyed(ServletContextEvent servletContextEvent) {
      
      }
      
      public void contextInitialized(ServletContextEvent servletContextEvent) {
      
      try {
      Configuration conf = new Configuration().configure();
      SessionFactory sf = conf.buildSessionFactory();
      } catch (Exception e) {
      e.printStackTrace();
      }
      }
      }
      
      2) 在對應應用程序的web.xml文件中加入:
      
      <listener>
      <listener-class> com.starup. HibernateInitStartUp </listener-class>
      </listener>
      
      3) 啟動wls,系統會在初始化對應應用程序的時候自動運行。
      
      此方法不用配置weblogic的啟動環境變量,因為當初始化應用程序的時候,對應的類和包已經加載到環境變量中。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>