Tomcat數(shù)據(jù)源設(shè)置

          Step by Step:
          1。將數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序拷貝到tomcat\common\lib目錄下面。
          2。修改server.xml文件,在Context配置節(jié)點(diǎn)下面加上資源節(jié)點(diǎn),如下:
          <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
                           maxActive="100" maxIdle="30" maxWait="10000"
                           username="root" password="" driverClassName="org.gjt.mm.mysql.Driver"
                           url="jdbc:mysql://127.0.0.1:3306/test?characterEncoding=GBK&amp;useUnicode=TRUE"/>
                  注意的是:如果有&字符,需要轉(zhuǎn)移成&amp;(XML文件規(guī)范)
          3。修改Web應(yīng)用WEB-INF\web.xml文件,加上Resource-Def,如下:
            <resource-ref>
                <description>DB Connection</description>
                <res-ref-name>jdbc/TestDB</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
          4。重新啟動(dòng)Web應(yīng)用,在Web應(yīng)用中可以通過(guò)下面的代碼來(lái)獲取數(shù)據(jù)源和數(shù)據(jù)庫(kù)連接:
          javax.naming.InitialContext context = new javax.naming.InitialContext();
          DataSource ds = (DataSource) cxt.lookup( "java:/comp/env/jdbc/TestDB" );
          connection = (Connection)ds.getConnection();

          Problem And Answer:
          1。Question:如果出現(xiàn)下列提示:
                javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
                  at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:640),怎么辦?
                Answer:檢查在Tomcat中conf/server.xml文件,檢查<context>是否設(shè)置useNaming="false",如果是,去掉。
          2。Question:如果無(wú)法找到數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序怎么辦?
                Answer:檢查數(shù)據(jù)庫(kù)驅(qū)動(dòng)JDBC程序是否放在了Tomcat\common\lib目錄下面



          對(duì)于第一個(gè)問(wèn)題要特別注意:
          今天在調(diào)試時(shí),突然發(fā)現(xiàn)數(shù)據(jù)連接池不能用了,但jsp文件測(cè)試,是ok了,于是在類(lèi)文件中添加main進(jìn)行測(cè)試,也出現(xiàn)了錯(cuò)誤,一直想不明白,后來(lái)經(jīng)過(guò)一位朋友的提醒,原來(lái)犯了一個(gè)低級(jí)錯(cuò)誤:java單元的環(huán)境是jdk;而jsp的環(huán)境卻是tomcat;數(shù)據(jù)連接池是在tomcat中配置的,所以能正常運(yùn)行的,但java測(cè)試的環(huán)境只有jdk,所以在引用數(shù)據(jù)連接池時(shí)就時(shí)出現(xiàn)找不環(huán)境的錯(cuò)誤~

          javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
              at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
              at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
              at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
          connect fail    at javax.naming.InitialContext.lookup(InitialContext.java:351)
              at com.zb.struts.db.Db.getDbConn(Db.java:37)
              at com.zb.struts.db.Db.getStm(Db.java:52)
              at com.zb.test.TestExcel.readDataToExcel3(TestExcel.java:239)
              at com.zb.test.TestExcel.main(TestExcel.java:50)

          posted on 2007-09-09 11:37 劉錚 閱讀(680) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): Tomcat

          評(píng)論

          # 你怎么解決的 2008-06-27 11:43 小青蛙

          沒(méi)有解決呀
            回復(fù)  更多評(píng)論   


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


          網(wǎng)站導(dǎo)航:
           
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          留言簿(1)

          文章分類(lèi)(141)

          文章檔案(147)

          搜索

          最新評(píng)論

          主站蜘蛛池模板: 叶城县| 新郑市| 广水市| 北碚区| 文化| 黄冈市| 平昌县| 长海县| 宜宾县| 延安市| 彰武县| 阳曲县| 凤阳县| 大洼县| 冀州市| 湾仔区| 姚安县| 建水县| 西华县| 巢湖市| 普洱| 随州市| 蛟河市| 武邑县| 万宁市| 红桥区| 监利县| 泗洪县| 阿合奇县| 平南县| 福清市| 凤冈县| 馆陶县| 鄂伦春自治旗| 宁城县| 霞浦县| 济源市| 收藏| 民丰县| 前郭尔| 吐鲁番市|