<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    拼搏的人生

    拼搏在繁華的都市

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      7 隨筆 :: 13 文章 :: 6 評論 :: 0 Trackbacks
    Tomcat下JNDI的配置

    ??? JNDI全名為Java Naming and Directory Interface.JNDI主要提供應(yīng)用程序所需要資源上命名與目錄服務(wù).在Java EE環(huán)境中,JNDI扮演了一個很重要的角色,
    它提供了一個接口讓用戶在不知道資源所在位置的情形下,取得該資源服務(wù).
    ??? 就好比網(wǎng)絡(luò)磁盤驅(qū)動器的功能一樣。如果有人事先將另一臺機(jī)器上的磁盤驅(qū)動器接到用戶的機(jī)器上,用戶在使用的時候根本就分辨不出現(xiàn)在的驅(qū)動器是存在本端,
    還是在另一端的機(jī)器上,用戶只需取得資源來用,根本就不知道資源在什么地方。
    ??? JNDI這個接口基本上是LDAP,LDAP全名為Lightweight Directory Access Protocol.
    ?? ?
    ??? 要設(shè)定JNDI的JDBC數(shù)據(jù)源和DBCP連接池需要做以下的工作:(for example Oracle DataBase)

    ??? 一. 安裝JDBC Driver
    ??? 將你DB的JDBC Driver部署到{Tomcat_Install]\common\lib目錄下。
    ??? 二. 設(shè)定Tomcat下的server.xml
    ??? 修改{Tomcat_Install|\conf\server.xml文件中你的站臺標(biāo)簽里的<Host></Host>之間的內(nèi)容.如下:
    ??? server.xml
    ???? <Host>
    ??????? <Context path="/Develop" docBase="Develop" debug="0" reloadable="true"?????????????? crossContext="true">
    ??????? <Resource name="jdbc/dy" auth="Container" type="javax.sql.DataSource"/>
    ??????????? <ResourceParams name="jdbc/dy">
    ?????????????? <parameter>
    ????????????????? <name>factory</name>
    ????????????????? <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    ?????????????? </parameter>
    ?????????????? <parameter>
    ????????????????? <name>driverClassName</name>
    ????????????????? <value>oracle.jdbc.driver.OracleDriver</value>
    ?????????????? </parameter>
    ?????????????? <parameter>
    ????????????????? <name>url</name>
    ????????????????? <value>jdbc:oracle:thin:@yang:1521:orcl</value>
    ?????????????? </parameter>????????????? ?
    ?????????????? <parameter>
    ????????????????? <name>username</name>
    ????????????????? <value>scott</value>
    ?????????????? </parameter>
    ?????????????? <parameter>
    ????????????????? <name>password</name>
    ????????????????? <value>ss</value>
    ?????????????? </parameter>
    ?????????????? <parameter>
    ????????????????? <name>maxActive</name>
    ????????????????? <value>20</value>
    ?????????????? </parameter>
    ?????????????? <parameter>
    ????????????????? <name>maxIdle</name>
    ????????????????? <value>10</value>
    ?????????????? </parameter>
    ?????????????? <parameter>
    ????????????????? <name>maxWait</name>
    ????????????????? <value>-1</value>
    ?????????????? </parameter>? ????????????????????????????????????????????????????????????? ?
    ??????????? </ResourceParams>
    ??????? </Context>
    ????? </Host>
    ? 上述社定所表示的意思是在Develop站臺中,定義一個JDBC數(shù)據(jù)來源,名稱為jdbc/dy.
    ? 通過以下的代碼來設(shè)置的這個jdbc/dy的數(shù)據(jù)來源和DBCP連接池:
    ? <parameter>
    ???? <name>factory</name>
    ???? <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    ? </parameter>
    ? 設(shè)定使用DBCP連接池,這是有Jakarta Project組織所制定的連接池程序,它一樣是OpenSource的.
    參數(shù)說明:
    ???? <Context></Context>用于設(shè)置你的站臺.
    ???? <Context>標(biāo)簽中的path="/Develop"代表網(wǎng)站名稱,即: http://IP_DomaninName/Develop; docBase="Develop"代表站臺的目錄位置,debug則是設(shè)定debug level
    ???? ,0表示提供最少的信息,9表示提供最都多的信息;reloadable則表示Tomcat執(zhí)行時,當(dāng)class,web.xml被更新時,都會自動重新加載,不需要重新啟動Tomcat;
    ???? maxActive表示連接池的最大數(shù)據(jù)庫連接數(shù);設(shè)為0表示無限制;maxIdle表示設(shè)定連接池中最小能有幾個Connection,若為0表示不限制;maxWait 最大建立連接等待時間。
    ??? 如果超過此時間將接到異常,設(shè)為-1表示無限制,單位為ms;driverClassName JDBC驅(qū)動程序;url表示數(shù)據(jù)庫連接字符串.

    ?三. 設(shè)定應(yīng)用站臺中的web.xml
    ?eg:設(shè)定Develop的web.xml如下:
    ? <resource-ref>
    ???? <description>JNDI JDBC DataSource of Develop</description>?? //一個描述
    ???? <res-ref-name>jdbc/dy</res-ref-name>??????????????????????? //這里必須為你之前指定的<ResourceParams name="jdbc/dy">
    ???? <res-type>javax.sql.DataSource</res-type>
    ???? <res-auth>Container</res-auth>
    ? </resource-ref>

    ?四. 使用JDBC數(shù)據(jù)來源獲得Connection對象
    ?? Context initContext=new InitialContext();
    ?? Context envContext=(Context)initContext.lookup("java:/comp/env");
    ?? 或者
    ?? Context envContext=(Context)initContext.lookup("java:comp/env");
    ?? DataSourceds conn=(DataSource)envContext.lookup("jdbc/dy");
    ?? conn=ds.getConnection();

    按照這四個步驟做下來后,那么你就可以寫個Test Page來測試一下了.
    Test Page1:
    _________________________________________________________________________________________________________
    testpool.jsp
    <!--測試JNID數(shù)據(jù)源的配置-->
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="javax.naming.Context"%>
    <%@ page import="javax.sql.DataSource"%>
    <%@ page import="javax.naming.InitialContext"%>
    <%@ page import="java.sql.*"%>
    <%
    ? DataSource ds=null;
    ? try
    ? {
    ????? Context initCtx=new InitialContext();
    ????? Context envCtx=(Context)initCtx.lookup("java:comp/env");
    ????? //從Context中l(wèi)oopup 數(shù)據(jù)源
    ????? ds=(DataSource)envCtx.lookup("jdbc/dy");
    ????? if(ds!=null)
    ????? {
    ??????? out.println("已經(jīng)獲得DataSource!");
    ??????? out.println("<br>");
    ??????? Connection conn=ds.getConnection();
    ??????? Statement stmt=conn.createStatement();
    ??????? ResultSet rst=stmt.executeQuery("select * from emp");
    ??????? out.println("以下是從數(shù)據(jù)庫里讀出來的數(shù)據(jù)");
    ??????? out.println("<hr>");
    ??????? while(rst.next())
    ??????? {
    ????????? out.println("empName:"+rst.getString("ename"));
    ????????? out.println("<br>");
    ??????? }
    ????? }
    ??? else
    ?? ??? ?out.println("連接失敗");
    ? }
    ? catch(Exception e)
    ? {
    ????? out.println(e);
    ? }
    %>
    如果成功那么輸出結(jié)果:
    ========================================
    已經(jīng)獲得DataSource!
    以下是從數(shù)據(jù)庫里讀出來的數(shù)據(jù):
    empName:SMITH
    empName:ALLEN
    empName:WARD
    empName:JONES
    empName:MARTIN
    empName:BLAKE
    empName:CLARK
    empName:SCOTT
    empName:KING
    empName:TURNER
    empName:ADAMS
    empName:JAMES
    empName:FORD
    empName:MILLER
    empName:feiyang
    empName:yang
    empName:feifei
    empName:fei


    ?

    posted on 2006-05-15 12:01 Dalston.Young 閱讀(469) 評論(0)  編輯  收藏 所屬分類: 實(shí)用技術(shù)

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久国产精品免费一区二区三区 | 久久久久亚洲精品无码网址| 亚洲午夜AV无码专区在线播放| 亚洲男人的天堂在线播放| 亚洲国产成人久久精品大牛影视| 两个人看的www免费视频| 精品久久免费视频| 亚洲国产精品不卡在线电影| 人人玩人人添人人澡免费| 亚洲AⅤ优女AV综合久久久| 亚洲AV无码乱码在线观看代蜜桃| 中国一级毛片视频免费看| 国产青草视频免费观看97| 亚洲视频在线观看不卡| 大地资源在线资源免费观看| 国产一级高清免费观看| 亚洲xxxxxx| 国产一级淫片视频免费看| 色哟哟国产精品免费观看| 国产国产成年年人免费看片| 免费看一级一级人妻片| 四虎影院永久免费观看| 91av免费在线视频| 亚洲国产日韩成人综合天堂| 亚洲AV电影天堂男人的天堂| 黄页网站免费观看| 亚洲中文无码a∨在线观看| 亚洲免费在线播放| 久久青草亚洲AV无码麻豆| 天黑黑影院在线观看视频高清免费| 亚洲人成依人成综合网| 永久免费无码网站在线观看| 久久精品无码免费不卡| 精品亚洲AV无码一区二区| 免费a级毛片在线观看| 国产亚洲精彩视频| 免费在线黄色网址| 99精品视频免费在线观看| 久久久久久久亚洲Av无码| 亚洲成人免费在线观看| 亚洲一本之道高清乱码|