1. 程式人生 > >Weblogic之weblogic資料來源配置及jndi呼叫

Weblogic之weblogic資料來源配置及jndi呼叫

將資料來源交給容器管理,使用jndi的方式管理,可以很方便的管理資料庫連線。

將資料管理庫交給容器,後面工程直接使用jndi的方式在容器中獲取jndi地址。

如果變更資料庫地址,直接修改資料庫連線池的地址即可,而各工程無需再一個個的修改資料庫連線地址,簡化了資料庫的管理。

今天我們看看WebLogic中資料來源的配置

啟動WebLogic服務,進入WebLogic控制檯

點選左側的 服務 ->  資料來源

新建 一般資料來源

填寫資料來源名稱和 jndi名稱,選擇資料庫型別

選擇資料庫驅動

預設下一步即可

填寫資料庫名稱,主機名,埠號,資料庫使用者名稱和口令

點選測試配置,待訊息區顯示連線測試成功時,點選完成

接下來我們在web工程中來呼叫一下WebLogic容器的jndi資料來源。

工程中web.xml配置為

<resource-ref>  
     <description>DB Connection</description>
     <res-ref-name>jdbc/test</res-ref-name>  
     <res-type>javax.sql.DataSource</res-type>  
     <res-auth>Container</res-auth>  
  </resource-ref> 



接下來看看工程程式碼中的呼叫

	Hashtable<String, String> env = new Hashtable<String, String>();  
        env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");  
        env.put(Context.PROVIDER_URL,"t3://localhost:7001");  
        
        // 初始化查詢名稱空間
	Context ctx = new InitialContext(env);
	DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/test");
	// 獲取資料庫連線
	Connection conn = ds.getConnection();

這時,會有

javax.naming.LinkException:  [Root exception is javax.naming.NameNotFoundException: 
While trying to lookup 'jdbc.test' didn't find subcontext 'jdbc'. Resolved ''; remaining name 'jdbc/test']; 
Link Remaining Name: 'jdbc/test' at weblogic.jndi.internal.WLNamingManager.getObjectInstance(WLNamingManager.java:100)

異常產生。

仔細檢查會發現,我們的資料來源定義好了,但是沒有指定它的服務目標

現在我們將資料來源繫結到它的目標server上面去

點選資料來源jdbcTest,進入到資料來源詳細資訊頁面

點選上面的目標Tab頁籤,展示目標頁內容


勾選AdminServer前面的勾,點選儲存,設定jdbcTest資料來源為AdminServer服務。

待訊息區出現,已啟用所有更改,不需要重新啟動,設定更新成功。 資料來源設定成功。

重新在工程中獲取資料庫連線池,可成功獲取。