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

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

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

    posts - 22,comments - 35,trackbacks - 0
    1.安裝JDK1.4和jakarta-tomcat-4.1.27.exe。

    ? 路徑分別為 D:\jdk1.4 和 D:\Tomcat 4.1。
    ? 安裝Tomcat 4時(shí),會(huì)要求填寫(xiě)web訪問(wèn)端口、用戶名、密碼等信息。
    ? web訪問(wèn)端口默認(rèn)為8080,用戶名默認(rèn)為admin,密碼自己填寫(xiě)。

    ? 啟動(dòng)Tomcat4,訪問(wèn)http://127.0.0.1:8080/ ,就能看到Apache Tomcat/4.1.27的歡迎訪問(wèn)頁(yè)面,頁(yè)面上有一些相關(guān)介紹信息等。


    2.設(shè)置數(shù)據(jù)庫(kù)的驅(qū)動(dòng)

    ? 以O(shè)racle的JDBC驅(qū)動(dòng)設(shè)置為例:

    ? Oracle8i的驅(qū)動(dòng)在\oracle\ora81\jdbc\lib\目錄下。名字為classes12.zip。

    ? Oracle9i的驅(qū)動(dòng)在\oracle9i\jdbc\lib\目錄下,名字為ojdbc14.jar。

    ? 將這個(gè)文件copy到D:\Tomcat 4.1\common\lib 下。

    ? 注意,如果使用Oracle8i 的驅(qū)動(dòng),則需要在D:\Tomcat 4.1\common\lib 目錄下將classes12.zip更名為classes12.jar,因?yàn)門(mén)omcat4不認(rèn)識(shí)zip的后綴名。


    3.設(shè)置Web應(yīng)用。

    ? 新建一個(gè)文件夾,名字為mypool,位置為D:\mypool。這個(gè)D:\mypool路徑將是web應(yīng)用的主目錄。

    ? 打開(kāi)D:\Tomcat 4.1\conf\server.xml 文件,找到如下行:
    ?
    ? ?<!-- Tomcat Root Context -->
    ? ? ?<!--
    ? ? ? ? ?<Context path="" docBase="ROOT" debug="0"/>
    ? ? ?-->
    ?
    ?
    ? 在這下面,加入如下行:
    ?
    ? <Context path="/mypool" docBase="D:\mypool" privileged="true" reloadable="true"/>

    ?
    ? 完成后,成為這個(gè)樣子:

    ? ? <!-- Tomcat Root Context -->
    ? ? ?<!--
    ? ? ? ? ? <Context path="" docBase="ROOT" debug="0"/>
    ? ? ? -->
    ? ?
    ? ? ?<Context path="/mypool" docBase="D:\mypool" privileged="true" reloadable="true"/>

    ? 保存D:\Tomcat 4.1\conf\server.xml 文件。

    ? 配置完成后,重新啟動(dòng)Tomcat,就可以這樣訪問(wèn)這個(gè)web應(yīng)用了: http://127.0.0.1:8080/mypool/


    4.設(shè)置Tomcat的連接池?cái)?shù)據(jù)源。

    ? 訪問(wèn) http://127.0.0.1:8080/admin 頁(yè)面,用剛才安裝 Tomcat4 時(shí)填寫(xiě)的用戶名和密碼登錄。

    ? 登錄成功后,會(huì)出現(xiàn)Tomcat 的web應(yīng)用管理界面(Tomcat Web Server Administration Tool)。

    ? 然后在左邊的目錄樹(shù)點(diǎn)擊“Data Sources”項(xiàng),右邊可以看到JNDI配置的頁(yè)面。
    ?
    ? 在右上角的下拉框中選擇“Create New Data Source”,接下來(lái)填寫(xiě)配置信息:
    ?
    ? JNDI Name: jdbc/myOrcl ?
    ? Data Source URL: jdbc:oracle:thin:@192.168.6.40:1521:dbserver
    ? JDBC Driver Class: oracle.jdbc.driver.OracleDriver
    ? User Name: myname
    ? Password: mypassword
    ? Max. Active Connections: ?可用默認(rèn)值
    ? Max. Idle Connections: ? ?可用默認(rèn)值
    ? Max. Wait for Connection: 可用默認(rèn)值
    ? Validation Query: 可不填寫(xiě)。

    ? 然后,按下“save”按鈕保存。
    ? 再按下“Commit Changes”按鈕將配置更改提交完成。

    ? 此時(shí)如果看看 Tomcat4 的窗口,會(huì)發(fā)現(xiàn)在最下面有一行文字提示: ?

    ? ?Debugging -- changes saved to conf/server.xml
    ?
    ? 此時(shí) D:\Tomcat 4.1\conf\server.xml 文件的配置已經(jīng)更改保存完畢。


    ? 如果此時(shí)打開(kāi)D:\Tomcat 4.1\conf\server.xml 文件,會(huì)發(fā)現(xiàn)server.xml 文件的內(nèi)容改變了很多。
    ? 一些注釋文字都被去掉了。

    ? 還會(huì)發(fā)現(xiàn)上面第三步配置Web應(yīng)用的如下文字
    ? ?
    ? ?<!-- Tomcat Root Context -->
    ? ? ?<!--
    ? ? ? ? ? <Context path="" docBase="ROOT" debug="0"/>
    ? ? ? -->
    ? ?
    ? ? ?<Context path="/mypool" docBase="D:\mypool" privileged="true" reloadable="true"/>

    ? 則被自動(dòng)修改成了這樣的:

    ? ? ?<Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="D:\mypool" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/mypool" privileged="true" reloadable="true" swallowOutput="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
    ? ? ? ? </Context>

    ? ?
    ? ?好了,至此位置,對(duì)Oracle的應(yīng)用連接池已經(jīng)配置完畢。
    ? ?
    ? ?仔細(xì)對(duì)照server.xml 文件,會(huì)發(fā)現(xiàn)剛才所配置的連接池信息被放置在<GlobalNamingResources>標(biāo)簽中,這意味著這個(gè)信息是可以被全局引用的,大致是如下的樣子:

    ? ? <GlobalNamingResources>
    ? ? <Environment name="simpleValue" override="true" type="java.lang.Integer" value="30"/>
    ? ? <Resource name="jdbc/myOrcl" scope="Shareable" type="javax.sql.DataSource"/>
    ? ? <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" scope="Shareable" type="org.apache.catalina.UserDatabase"/>
    ? ?
    ? ? <ResourceParams name="jdbc/myOrcl">
    ? ? ? <parameter>
    ? ? ? ? <name>maxWait</name>
    ? ? ? ? <value>5000</value>
    ? ? ? </parameter>
    ? ? ? <parameter>
    ? ? ? ? <name>maxActive</name>
    ? ? ? ? <value>200</value>
    ? ? ? </parameter>
    ? ? ? <parameter>
    ? ? ? ? <name>password</name>
    ? ? ? ? <value>mypassword</value>
    ? ? ? </parameter>
    ? ? ? <parameter>
    ? ? ? ? <name>url</name>
    ? ? ? ? <value>jdbc:oracle:thin:@192.168.6.40:1521:dbserver</value>
    ? ? ? </parameter>
    ? ? ? <parameter>
    ? ? ? ? <name>driverClassName</name>
    ? ? ? ? <value>oracle.jdbc.driver.OracleDriver</value>
    ? ? ? </parameter>
    ? ? ? <parameter>
    ? ? ? ? <name>maxIdle</name>
    ? ? ? ? <value>20</value>
    ? ? ? </parameter>
    ? ? ? <parameter>
    ? ? ? ? <name>username</name>
    ? ? ? ? <value>myname</value>
    ? ? ? </parameter>
    ? ? </ResourceParams>
    ? ? <ResourceParams name="UserDatabase">
    ? ? ? <parameter>
    ? ? ? ? <name>factory</name>
    ? ? ? ? <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
    ? ? ? </parameter>
    ? ? ? <parameter>
    ? ? ? ? <name>pathname</name>
    ? ? ? ? <value>conf/tomcat-users.xml</value>
    ? ? ? </parameter>
    ? ? </ResourceParams>
    ? </GlobalNamingResources> ?


    5.設(shè)置web應(yīng)用對(duì)連接池的引用。
    ?
    ? 打開(kāi)D:\Tomcat 4.1\conf\server.xml 文件,找到剛才配置的web應(yīng)用文字,由于剛才server.xml 文件被自動(dòng)修改過(guò),并去掉了很多注釋內(nèi)容,所以剛才配置的web應(yīng)用

    ? ?<Context path="/mypool" docBase="D:\mypool" privileged="true" reloadable="true"/>

    ? 被自動(dòng)修改成了這樣的:

    ? ? ?<Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="D:\mypool" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/mypool" privileged="true" reloadable="true" swallowOutput="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
    ? ? ? ? </Context>

    ? 在<Context></Context>的描述中加上本web應(yīng)用對(duì)全局連接池的引用說(shuō)明,如下文字:

    ? ? <ResourceLink global="jdbc/myOrcl" name="jdbc/myOrcl" type="javax.sql.DataSource"/> ?

    ? 設(shè)置完成后,web應(yīng)用的描述大致如下面的樣子:

    ? ? <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="D:\mypool" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/mypool" privileged="true" reloadable="true" swallowOutput="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper"> ?
    ? ?
    ? ? ? <ResourceLink global="jdbc/myOrcl" name="jdbc/myOrcl" type="javax.sql.DataSource"/> ? ? ?
    ? ?
    ?</Context>


    ? 保存D:\Tomcat 4.1\conf\server.xml 文件。

    ? 注意,設(shè)置這個(gè)連接池的引用說(shuō)明是非常重要的一步。
    ? 一些朋友在Tomcat4中配置連接池失敗的原因大都?xì)w咎與此。還有網(wǎng)上一些文章說(shuō)這是一個(gè)Tomcat4的一個(gè)Bug。
    ? 我用了整整兩天兩夜的時(shí)間才明白其中的奧秘。[:(]
    ? 當(dāng)時(shí)離瘋掉只查一點(diǎn)點(diǎn)。因?yàn)楫吘古渲靡粋€(gè)連接池是很簡(jiǎn)單的。[:(]


    6.一般情況下,到此,連接池的設(shè)置就完成了。

    ? 然后需要重新啟動(dòng)Tomcat,這樣就可以使用連接池來(lái)工作了。

    ? 但是,看到很多文章上說(shuō),還需要設(shè)置一下web.xml才能應(yīng)用。我沒(méi)有設(shè)置web.xml,連接池也可以完全使用。

    ? 現(xiàn)在說(shuō)一下web.xml的配置方法。

    ? 在D:\mypool中新建文件夾,命名為WEB-INF,注意是大寫(xiě)的字母。

    ? 然后在D:\mypool\WEB-INF\ 下新建文件web.xml,其內(nèi)容為:

    ? <web-app>
    ? ? <resource-ref>
    ? ? ? ? <description>Oracle DataSource example</description>
    ? ? ? ? <res-ref-name>jdbc/myOrcl</res-ref-name>
    ? ? ? ? <res-type>javax.sql.DataSource</res-type>
    ? ? ? ? <res-auth>Container</res-auth>
    ? ? </resource-ref>
    ? </web-app>

    ? 保存D:\mypool\WEB-INF\web.xml 文件。


    7.一個(gè)簡(jiǎn)單的應(yīng)用示例。

    ? 寫(xiě)了一個(gè)簡(jiǎn)單的JSP頁(yè)面,用連接池來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。

    內(nèi)容如下:
    ---------------------
    <%@ page contentType="text/html;charset=GBK"%>
    <%@ page import="javax.naming.*"%>
    <%@ page import="javax.sql.*"%>
    <%@ page import="java.sql.*"%>
    <%
    ? ? try
    ? ? { ? ? ? ? ? ? ? ? ?
    ? ? ? ?Context initCtx = new InitialContext();
    ?
    ? ? ? ?if(initCtx==null)
    ? ? ? ? ? throw new Exception("沒(méi)有匹配的環(huán)境");

    ? ? ? ?Context ctx = (Context) initCtx.lookup("java:comp/env");
    ? ? ?
    ? ? ? ?//獲取連接池對(duì)象 ? ? ? ? ? ? ? ? ?
    ? ? ? ?Object obj = (Object) ctx.lookup("jdbc/myOrcl"); ?
    ? ? ?
    ? ? ? //類型轉(zhuǎn)換
    ? ? ? ?javax.sql.DataSource ds = (javax.sql.DataSource)obj;
    ? ? ? ? ?
    ? ? ? ?if(ds==null)
    ? ? ? ? ? throw new Exception("沒(méi)有匹配數(shù)據(jù)庫(kù)"); ?
    ? ?
    ? ? ? ?Connection conn = ds.getConnection();
    ? ? ?
    ? ? ? ?Statement stmt = conn.createStatement(); ? ? ? ? ? ? ? ? ?
    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    ? ? ? ?String strSql="select * from grade"; ?//SQL,要保證grade數(shù)據(jù)表里面有記錄。
    ? ? ? ? ? ? ? ? ? ? ?
    ? ? ? ?ResultSet rs=stmt.executeQuery(strSql);

    ? ? ? ?if(rs.next())
    ? ? ? ? ?{ ? ? ? ? ? ? ? ? ? ?
    ? ? ? ? ? out.println(rs.getString(1)); ? ? ? ? ? ? ? ? ? ? ? ? ?
    ? ? ? ? ? out.println(rs.getString(2)); ? ? ? ? ? ? ? ? ? ? ?
    ? ? ? ? ?}
    ? ? ? ?rs.close(); ? ? ?//關(guān)閉ResultSet ?
    ? ? ? ?stmt.close(); ? ?//關(guān)閉Statement
    ? ? ? ?conn.close(); ? ?//將連接放回到連接池
    ? ? ?}

    ? ? ?catch(Exception ex)

    ? ? ?{ ? ?
    ? ? ? ? ?ex.printStackTrace();
    ? ? ? ? ?throw new SQLException("cannot get Connection pool."+ex);
    ? ? ?}
    %>

    <hr>
    --------------------
    ?
    記住,用完后的數(shù)據(jù)庫(kù)連接要釋放。
    不然當(dāng)打開(kāi)的連接過(guò)多或惡意刷屏,連接池的連接數(shù)目會(huì)被用完。
    當(dāng)連接池的連接數(shù)目用完后,再訪問(wèn)jsp頁(yè)面時(shí),會(huì)在頁(yè)面出現(xiàn)如下的錯(cuò)誤信息,報(bào)告連接池的連接被耗盡:
    java.sql.SQLException: DBCP could not obtain an idle db connection, pool exhausted




    二、Win2k下Tomcat5 的連接池的配置

    安裝jakarta-tomcat-5.0.13.exe,假如Tomcat5的安裝目錄為 D:\Tomcat 5.0 。

    別忘了把oracle的驅(qū)動(dòng)程序classes12.jar文件copy到目錄 D:\Tomcat 5.0\common\lib\ 下。

    Tomcat5的連接池設(shè)置和Tomcat4 的差不多,僅說(shuō)明一下不同點(diǎn)或需要特別注意的地方。


    1. Tomcat5啟動(dòng)后,訪問(wèn) http://127.0.0.1:8080/admin 頁(yè)面,當(dāng)設(shè)置完Tomcat的連接池?cái)?shù)據(jù)源后,打開(kāi)D:\Tomcat 5.0\conf\server.xml 文件,會(huì)看到配置的連接池相關(guān)信息大致如下樣子:

    <GlobalNamingResources>
    ? ? <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    ? ? <Resource name="jdbc/myOrcl" type="javax.sql.DataSource"/>
    ? ? <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
    ? ? <ResourceParams name="jdbc/myOrcl">
    ? ? ? <parameter>
    ? ? ? ? <name>maxWait</name>
    ? ? ? ? <value>5000</value>
    ? ? ? </parameter>
    ? ? ? <parameter>
    ? ? ? ? <name>maxActive</name>
    ? ? ? ? <value>4</value>
    ? ? ? </parameter>
    ? ? ? <parameter>
    ? ? ? ? <name>password</name>
    ? ? ? ? <value>mypassword</value>
    ? ? ? </parameter>
    ? ? ? <parameter>
    ? ? ? ? <name>url</name>
    ? ? ? ? <value>jdbc:oracle:thin:@127.0.0.1:1521:dbserver</value>
    ? ? ? </parameter>
    ? ? ? <parameter>
    ? ? ? ? <name>driverClassName</name>
    ? ? ? ? <value>oracle.jdbc.driver.OracleDriver</value>
    ? ? ? </parameter>
    ? ? ? <parameter>
    ? ? ? ? <name>maxIdle</name>
    ? ? ? ? <value>2</value>
    ? ? ? </parameter>
    ? ? ? <parameter>
    ? ? ? ? <name>username</name>
    ? ? ? ? <value>myusername</value>
    ? ? ? </parameter>
    ? ? </ResourceParams>
    ? ? <ResourceParams name="UserDatabase">
    ? ? ? <parameter>
    ? ? ? ? <name>factory</name>
    ? ? ? ? <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
    ? ? ? </parameter>
    ? ? ? <parameter>
    ? ? ? ? <name>pathname</name>
    ? ? ? ? <value>conf/tomcat-users.xml</value>
    ? ? ? </parameter>
    ? ? </ResourceParams>
    ? </GlobalNamingResources>

    可以看到,一些連接池的信息配置參數(shù)已經(jīng)和Tomcat4不同了。
    但大致配置步驟和方法都是一樣的。


    2.設(shè)置web應(yīng)用對(duì)連接池的引用。

    ?打開(kāi)D:\Tomcat 5.0\conf\Catalina\localhost\ 目錄,找到和web應(yīng)用同名的xml文件(mypool.xml),打開(kāi)這個(gè)文件,
    修該其<Context></Context>的描述信息,添加如下行:

    ? ?<ResourceLink global="jdbc/myOrcl" name="jdbc/myOrcl" type="javax.sql.DataSource"/> ?

    使mypool.xml文件的內(nèi)容看起來(lái)大致這個(gè):
    ?
    ? ?<Context docBase="D:/mypool" path="/mypool" privileged="true" reloadable="true">
    ? ? ?<ResourceLink global="jdbc/myOrcl" name="jdbc/myOrcl" type="javax.sql.DataSource"/>
    ? ?</Context>

    然后保存mypool.xml,需要重新Tomcat5服務(wù),使之生效。


    3.JSP頁(yè)面測(cè)試文件的寫(xiě)法也是一樣的,不再贅述。

    4.一些補(bǔ)充:

    ? 如果web應(yīng)用沒(méi)有配置對(duì)連接池的引用,即沒(méi)有配置<ResourceLink>,則會(huì)在訪問(wèn)jsp頁(yè)面時(shí)出現(xiàn)如下錯(cuò)誤:
    ? ? NameNotFoundException: Name jdbc is not bound in this Context

    ? 如果缺少Oracle的JDBC驅(qū)動(dòng),則會(huì)在訪問(wèn)jsp頁(yè)面時(shí)出現(xiàn)如下錯(cuò)誤:
    ? ? java.sql.SQLException: Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'
    posted on 2006-03-22 11:30 kelven 閱讀(1653) 評(píng)論(1)  編輯  收藏 所屬分類: 其它

    FeedBack:
    # re: Tomcat4/5連接池的設(shè)置及簡(jiǎn)單應(yīng)用示例
    2008-05-15 16:52 | 龐永慶
    本公司誠(chéng)聘Java技術(shù)兼職人才
    本公司現(xiàn)在招Java方面書(shū)籍的作者 作者可以得到如下報(bào)酬:
    (1)豐厚的稿費(fèi)。
    (2)書(shū)籍的署名,同時(shí)公司還會(huì)對(duì)作者和書(shū)進(jìn)行宣傳
    (3)書(shū)同樣能夠讓作者在自己的圈子里的聲望和人氣增加
    對(duì)寫(xiě)書(shū)有興趣或者希望經(jīng)驗(yàn)和其他人分享的朋友可以和我聯(lián)系
    QQ878298915 請(qǐng)注明 Java
    Email pyq_1985@163.com  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲黄网在线观看| 亚洲国产精品成人精品小说| 中文字幕亚洲天堂| 亚洲视频免费观看| 精品一区二区三区免费毛片爱 | 99久久久国产精品免费牛牛四川| 毛片免费观看网址| 亚洲第一AAAAA片| mm1313亚洲国产精品无码试看| 日韩内射激情视频在线播放免费 | 亚洲毛片免费视频| 亚洲精品第一国产综合境外资源| 亚洲福利一区二区精品秒拍| 一级午夜免费视频| 女人张开腿等男人桶免费视频 | 国产免费啪嗒啪嗒视频看看| 亚洲高清中文字幕综合网| 最近中文字幕大全中文字幕免费| 亚洲福利视频一区二区三区| 免费A级毛片无码无遮挡内射| 国产亚洲精品无码成人| 免费无码一区二区| 日韩在线视频免费看| 亚洲精品视频免费看| 免费精品国偷自产在线在线| 亚洲国产av玩弄放荡人妇| 亚洲大片免费观看| 亚洲午夜激情视频| 国产一区二区三区亚洲综合| 成全视频在线观看免费高清动漫视频下载| 亚洲色在线无码国产精品不卡| 永久免费在线观看视频| 亚洲午夜精品一区二区麻豆| 大胆亚洲人体视频| 免费一级毛片在线播放放视频 | 又粗又大又黑又长的免费视频| 亚洲AV无码AV日韩AV网站| 最新仑乱免费视频| 一级特黄a大片免费| 亚洲黄色片免费看| 亚洲成a人片在线观看久|