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

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

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

    BloveSaga

    在希臘帕爾納斯山南坡上,有一個(gè)馳名世界的戴爾波伊神托所,在它的入口處的巨石上赫然銹刻著這樣幾個(gè)大字: 認(rèn)識(shí)你自己!

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      34 隨筆 :: 12 文章 :: 122 評(píng)論 :: 0 Trackbacks
    Tomcat下JNDI的配置

    ??? JNDI全名為Java Naming and Directory Interface.JNDI主要提供應(yīng)用程序所需要資源上命名與目錄服務(wù).在Java EE環(huán)境中,JNDI扮演了一個(gè)很重要的角色,
    它提供了一個(gè)接口讓用戶(hù)在不知道資源所在位置的情形下,取得該資源服務(wù).
    ??? 就好比網(wǎng)絡(luò)磁盤(pán)驅(qū)動(dòng)器的功能一樣。如果有人事先將另一臺(tái)機(jī)器上的磁盤(pán)驅(qū)動(dòng)器接到用戶(hù)的機(jī)器上,用戶(hù)在使用的時(shí)候根本就分辨不出現(xiàn)在的驅(qū)動(dòng)器是存在本端,
    還是在另一端的機(jī)器上,用戶(hù)只需取得資源來(lái)用,根本就不知道資源在什么地方。
    ??? JNDI這個(gè)接口基本上是LDAP,LDAP全名為L(zhǎng)ightweight 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文件中你的站臺(tái)標(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站臺(tái)中,定義一個(gè)JDBC數(shù)據(jù)來(lái)源,名稱(chēng)為jdbc/dy.
    ? 通過(guò)以下的代碼來(lái)設(shè)置的這個(gè)jdbc/dy的數(shù)據(jù)來(lái)源和DBCP連接池:
    ? <parameter>
    ???? <name>factory</name>
    ???? <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    ? </parameter>
    ? 設(shè)定使用DBCP連接池,這是有Jakarta Project組織所制定的連接池程序,它一樣是OpenSource的.
    參數(shù)說(shuō)明:
    ???? <Context></Context>用于設(shè)置你的站臺(tái).
    ???? <Context>標(biāo)簽中的path="/Develop"代表網(wǎng)站名稱(chēng),即: http://IP_DomaninName/Develop; docBase="Develop"代表站臺(tái)的目錄位置,debug則是設(shè)定debug level
    ???? ,0表示提供最少的信息,9表示提供最都多的信息;reloadable則表示Tomcat執(zhí)行時(shí),當(dāng)class,web.xml被更新時(shí),都會(huì)自動(dòng)重新加載,不需要重新啟動(dòng)Tomcat;
    ???? maxActive表示連接池的最大數(shù)據(jù)庫(kù)連接數(shù);設(shè)為0表示無(wú)限制;maxIdle表示設(shè)定連接池中最小能有幾個(gè)Connection,若為0表示不限制;maxWait 最大建立連接等待時(shí)間。
    ??? 如果超過(guò)此時(shí)間將接到異常,設(shè)為-1表示無(wú)限制,單位為ms;driverClassName JDBC驅(qū)動(dòng)程序;url表示數(shù)據(jù)庫(kù)連接字符串.

    ?三. 設(shè)定應(yīng)用站臺(tái)中的web.xml
    ?eg:設(shè)定Develop的web.xml如下:
    ? <resource-ref>
    ???? <description>JNDI JDBC DataSource of Develop</description>?? //一個(gè)描述
    ???? <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ù)來(lái)源獲得Connection對(duì)象
    ?? 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();

    按照這四個(gè)步驟做下來(lái)后,那么你就可以寫(xiě)個(gè)Test Page來(lái)測(cè)試一下了.
    Test Page1:
    _________________________________________________________________________________________________________
    testpool.jsp
    <!--測(cè)試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ù)庫(kù)里讀出來(lái)的數(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ù)庫(kù)里讀出來(lái)的數(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-06-04 15:29 藍(lán)色Saga 閱讀(191) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 實(shí)用技術(shù)

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 在线观看免费国产视频| 97在线免费视频| 国产免费AV片在线观看| 国产区卡一卡二卡三乱码免费| 亚洲性天天干天天摸| 一级a性色生活片久久无少妇一级婬片免费放 | 久久不见久久见免费影院www日本 久久WWW免费人成—看片 | 国产精品亚洲二区在线观看| 亚洲国语精品自产拍在线观看| 中文字幕免费播放| 亚洲一级特黄大片无码毛片| 免费无遮挡无码视频在线观看| 在线观看的免费网站| 国产精品极品美女自在线观看免费| 免费一级成人毛片| 亚洲欧洲久久久精品| 亚洲国产精品xo在线观看| 成年女人毛片免费视频| 亚洲 综合 国产 欧洲 丝袜 | 日本免费人成黄页网观看视频| 久久亚洲AV无码精品色午夜麻豆| 中文字幕无线码中文字幕免费| 免费夜色污私人影院在线观看| 亚洲日本成本人观看| 美女被免费喷白浆视频| 91嫩草亚洲精品| 免费看成人AA片无码视频羞羞网| 亚洲沟沟美女亚洲沟沟| 91热成人精品国产免费| 91天堂素人精品系列全集亚洲| 久久国产精品免费视频| 亚洲AV日韩精品久久久久久| 精品成人免费自拍视频| 亚洲av永久无码精品国产精品| 国产真人无码作爱视频免费| 婷婷亚洲久悠悠色悠在线播放| 蜜桃成人无码区免费视频网站| 久久亚洲私人国产精品| 免费人成在线观看69式小视频| 亚洲一级毛片视频| 四虎成人免费观看在线网址 |