Weblogic之weblogic資料來源配置及jndi呼叫
阿新 • • 發佈:2019-01-31
將資料來源交給容器管理,使用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服務。
待訊息區出現,已啟用所有更改,不需要重新啟動,設定更新成功。 資料來源設定成功。
重新在工程中獲取資料庫連線池,可成功獲取。